Настройте зависимости в файле спецификации RPM - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь разместить веб-приложение django, используя RPM.

Этот RPM-пакет, установленный на чент-металлической машине, должен установить все необходимые зависимости и настроить сервер 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

В общем,

Мой пакет RPM -> зависит от -> python-pi -> Зависит от -> epel-release

Именно поэтому я добавил epel-release в качестве первой зависимости в моем файле спецификации в Требуется тег .

Однако, когда я устанавливаю свой RPM-пакет, я получаю сообщение об ошибке, и при установке происходит сбой.

Вот как я устанавливаю свой пакет.

yum localinstallinstall packagename-1-1.0.x86_64.rpm -v

Я получаю сообщение об ошибке: «Python-pip пакета не найден«

epel-release помечен для установки.Но он еще не установлен, и поскольку python-pip также не найден, он не работает.

Я хочу добиться того, чтобы он также установил epel-release и затем также установил python-pip.

1 Ответ

0 голосов
/ 26 июня 2018

RPM пытается разрешить все зависимости перед установкой чего-либо. Это не позволяет вам установить несколько пакетов, а затем сказать «К сожалению, мы не можем найти python-pip» и выполнить откат. Если пакет epel-release еще не установлен, то yum не знает, где найти python-pip, поэтому он не может настроить зависимости.

Проблема в том, что python-pip не зависит от epel-release таким же образом; это не зависимость, управляемая системой RPM. Вместо этого установка epel-release расскажет yum о новом хранилище, о котором он ранее не знал. После этого он может установить python-pip очень хорошо.

Вместо этого вы должны удалить зависимость epel-release и просто сказать в документации, что ваш пакет требует EPEL.

...