2

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

Начните с новой директории скажем /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 ответ1

3

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .