Можно ли копировать и вставлять пакеты/программное обеспечение на другую машину в Linux?

Можно ли копировать и вставлять пакеты/программное обеспечение на другую машину в Linux?

Вот пример сценария:

Начните с нового каталога, скажем /myapps . Установите отдельный (предварительно скомпилированный или исходный) python, скажем, ./usr/bin (относительно каталога установки, а не системного /usr/bin) и установите различные eggs в этот пользовательский python . Это можно сделать, используя, возможно, что-то вроде buildout .

Теперь другой пользователь с той же версией ОС просто rsync'ит папку, сохраняя точную структуру папок, сможет ли он использовать python так же, как другой пользователь. Ему действительно нужно устанавливать все заново?

Я думал, что большинство менеджеров пакетов Linux работают так с /myapps, аналогично /usr, т.е. соглашение по умолчанию о том, где должны храниться файлы. Компиляция не обязательна, если вы не хотите оптимизировать, как при установке gentoo. Другими словами, я думаю, что большинство менеджеров пакетов делают следующее:

1) Проверка требований

2) Скопируйте/вставьте предварительно скомпилированные файлы в стандартное место, например /usr/lib /usr/bin

3) Обновите меню.

Некоторые предварительные условия в первой машине:

Установите все в этом каталоге, а не за его пределами. Запускается от имени обычного пользователя и без sudo.

В Windows, я думаю, это будет сложно из-за реестра и т. д., в чем я не уверен, как в обычной концепции файловой системы. Но в *nix это должно работать так же просто?

решение1

Это вполне возможно (но обычно вы достигаете того же результата, создавая virtualenv и объединяя весь свой корень virtualenv). У вас возникнут проблемы, если некоторым пакетам python потребуются внешние библиотеки, а у другого пользователя они не установлены (вот почему вы обычно делаете это с помощью virtualenv и pip bundle/pip freeze).

Менеджер пакетов запускает так называемые скрипты установки. Они могут содержать любой код, но обычно они добавляют требуемых пользователей/группы, редактируют некоторые другие конфигурации (потому что вы не можете "установить" строку в конфигурации; движение по разделению всех *.conf на *.conf.d немного помогает, но мы еще даже не близки к завершению этого), но с большинством пакетов Python все будет в порядке.

Связанный контент