Настройка depencencies в файле спецификации RPM
Я пытаюсь разместить веб-приложение django, используя RPM.
Этот RPM-пакет, устанавливаемый на простую металлическую машину centos, должен установить все необходимые зависимости и настроить сервер httpd для обслуживания приложения.
Это суть моего файла спецификации RPM.
Requires: epel-release, python2, python-setuptools, python-pip, python-virtualenv, python-devel, httpd, mod_wsgi, git, sqlite
Насколько мне известно, python-pip можно установить на centos 7 после установки пакета epel-release.
Https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
Так что в принципе,
Именно поэтому я добавил epel-release в качестве первой зависимости в моем файле спецификации в требуется тег.Мой пакет RPM -- > зависит от --> python-pi --> зависит от --> epel-release
Однако, когда я устанавливаю свой пакет RPM, я получаю ошибку и установка завершается неудачей.
Вот как я устанавливаю свой пакет.
yum localinstallinstall packagename-1-1.0.x86_64.rpm -v
Ошибка, которую я получаю: "не найден пакет python-pip"
Epel-релиз помечен для установки. Но пока не установлен, и поскольку python-pip также не найден, он терпит неудачу.
Чего я хочу добиться, так это установить epel-release, а затем установить python-pip.
1 ответ:
RPM пытается разрешить все зависимости Перед установкой чего-либо. Это мешает вам установить кучу пакетов, а затем сказать "Ой, мы не можем найти
python-pip
" и откатиться назад. Если пакетepel-release
еще не установлен, тоyum
не знает, где найтиpython-pip
, поэтому он не может настроить зависимости.Проблема в том, что
python-pip
не зависит отepel-release
таким же образом; это не зависимость, управляемая системой RPM. Вместо этого установкаepel-release
расскажетyum
о новое хранилище, о существовании которого он раньше и не подозревал. Как только у него это есть, он может установитьpython-pip
просто отлично.Вместо этого вы должны отбросить зависимость
epel-release
и просто сказать в документации, что ваш пакет требует EPEL.