Можно ли скопировать вставить пакеты / программное обеспечение на другой компьютер в Linux?
Вот пример сценария:
Начните с новой директории скажем /myapps . Установите отдельный (предварительно скомпилированный или исходный) Python, чтобы сказать./usr/bin (относительно каталога установки, а не system / usr / bin) и установите различные яйца на этот пользовательский питон. Это можно сделать, используя что-то вроде 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 у вас все будет хорошо.