我正在尝试使用RPM托管django Web应用程序。
此RPM软件包安装在裸机centos机器上时,应安装所有必需的依赖项并配置httpd服务器以为应用程序提供服务。
这是我的RPM规范文件的要旨。
Requires: epel-release, python2, python-setuptools, python-pip, python-virtualenv, python-devel, httpd, mod_wsgi, git, sqlite
据我所知,可以在安装epel-release软件包后将python-pip安装在centos 7上。
https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
基本上,
我的RPM软件包->取决于-> python-pi->取决于-> 释放精灵
这就是为什么我在 Requires 标记中的规范文件中将 epel-release 添加为第一依赖项的原因。
但是,当我安装RPM软件包时,出现错误,安装失败。
这是我安装软件包的方式。
yum localinstallinstall packagename-1-1.0.x86_64.rpm -v
我收到的错误是“未找到包python-pip”
epel-release已标记为安装。但是尚未安装,因为也没有找到python-pip,所以它失败了。
我要实现的是它也应该安装epel-release,然后再安装python-pip。
答案 0 :(得分:5)
RPM尝试在安装任何组件之前解决所有依赖性。这样可以防止您安装一堆软件包,然后说“糟糕,我们找不到python-pip
”并回滚。如果尚未安装epel-release
软件包,则yum
不知道在哪里可以找到python-pip
,因此无法配置依赖项。
问题在于python-pip
并不以相同的方式依赖epel-release
;它不是RPM系统管理的依赖项。相反,安装epel-release
会告诉yum
以前不知道的新存储库。安装完成后,就可以安装python-pip
了。
相反,您应该删除epel-release
依赖性,并在文档中说您的软件包需要EPEL。