Назад | Перейти на главную страницу

Возможна установка с помощью easy_install и bdist_rpm?

Я настраиваю новый сервер на основе RHEL5 и хотел установить некоторые модули Python, которые с ним не поставляются. Я видел, что в setuptools есть возможность создавать пакеты RPM из модулей, но, к сожалению, это работает только с setup.py, не с easy_install. Однако я хотел бы сохранить разрешение зависимостей easy_install так что руководство setup.py не вариант.

Как бы вы разрешили эту ситуацию? Я бы не хотел устанавливать пакеты в /usr/local тем более, что стандартный питон из RHEL5 не определяет путь Python под /usr/local по умолчанию.

Если вы можете использовать дополнительные репозитории RPM, один из вариантов - проверить, доступен ли пакет Python, который вы ищете, в репозитории EPEL (дополнительные пакеты для Enterprise Linux).

Видеть http://fedoraproject.org/wiki/EPEL

Самый простой и удобный для Python способ сделать это - использовать virtualenv. Предостережение заключается в том, что он доступен только после выполнения команды source $ HOME / .pystuff / bin / activate, но дает преимущество в том, что вам доступен весь мир пакетов python с минимальным загрязнением дистрибутива вашей системы.

Очевидно, вы можете искать и создавать собственные системные пакеты Python, но, честно говоря, для большинства случаев это больше хлопот, чем того стоит. Если вы собираетесь это сделать, начните с seutptools и virtualenv, очевидно, = p

wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
easy_install virtualenv
virtualenv $HOME/.pystuff
source $HOME/.pystuff/bin/activate
easy_install pip
easy_install <random_pypy_stuff>
easy_install <random .egg file>
easy_install <random .tar.gz file>
pip install <other random stuff that won't install with easy_install>

Во-первых, я стараюсь ничего не устанавливать, кроме как напрямую из дистрибутива ОС (Red Hat, Debian и т. Д.) - в качестве первой попытки. Конечно, проблема, особенно с дистрибутивами Enterprise, заключается в том, что многие вещи недоступны.

В этом случае я бы снова не стал полагаться на что-либо, генерирующее для меня RPM, просто потому, что он упакован в RPM, не означает, что это хорошо.

Что бы я сделал (ну, что я делаю :), так это написать файл спецификации для создания пакета для этого модуля Python самостоятельно.

В частности, с помощью инструментов настройки ...

  pythonX.Y setup.py build
  pythonX.Y setup.py install --root=<my-build-area> --<other-options>

Таким образом, вы можете полностью контролировать, где что установлено.