Возможна ли установка с использованием easy_install и bdist_rpm?
Я настраиваю новый сервер на основе RHEL5 и хотел установить некоторые модули Python, которые не поставляются с ним. Я видел, что в setuptools есть возможность создавать RPM-пакеты из модулей, но, к сожалению, это работает только с setup.py
, не с easy_install
, Тем не менее, я хотел бы сохранить разрешение зависимости easy_install
так что руководство setup.py
это не вариант.
Как бы вы решили эту ситуацию? Я хотел бы избежать установки пакетов в /usr/local
тем более, что фондовый питон из RHEL5 не определяет путь питона под /usr/local
по умолчанию.
3 ответа
Если вы можете использовать дополнительные RPM-репозитории, можно посмотреть, доступен ли искомый пакет Python в репозитории EPEL (Extra Packages for Enterprise Linux).
Смотрите http://fedoraproject.org/wiki/EPEL
Простой и дружественный для Python способ сделать это - использовать virtualenv. Это предостережение о доступности только после запуска исходной команды $HOME/.pystuff/bin/activ, но имеет то преимущество, что делает весь мир пакетов 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>
Таким образом, вы можете иметь полный контроль над тем, где все установлено.