在 RPM 规范文件中配置依赖项
Configure depencencies in RPM spec file
我正在尝试使用 RPM 托管 Django Web 应用程序。
这个 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
基本上,
My RPM package --> depends on --> python-pi --> Depends on -->
epel-release
这就是为什么我在 Requires 标签中添加 epel-release 作为第一个依赖项。
但是,当我安装我的 RPM 包时,出现错误并且安装失败。
这就是我安装包的方式。
yum localinstallinstall packagename-1-1.0.x86_64.rpm -v
我收到的错误是"No package python-pip found"
epel-release 已标记为安装。但是还没有安装,因为也没有找到 python-pip,所以失败了。
我想要实现的是它应该安装 epel-release 以及然后安装 python-pip。
RPM 尝试在安装任何东西之前解决所有依赖关系。这可以防止您安装一堆软件包,然后说 "Oops, we can't find python-pip
" 并回滚。如果尚未安装 epel-release
包,则 yum
不知道在哪里可以找到 python-pip
,因此无法配置依赖项。
问题是 python-pip
不以同样的方式依赖于 epel-release
;它不是由 RPM 系统管理的依赖项。相反,安装 epel-release
将告诉 yum
它以前不知道存在的新存储库。一旦有了它,它就可以安装 python-pip
就好了。
相反,您应该删除 epel-release
依赖项,并在文档中说明您的包需要 EPEL。
我正在尝试使用 RPM 托管 Django Web 应用程序。
这个 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
基本上,
My RPM package --> depends on --> python-pi --> Depends on --> epel-release
这就是为什么我在 Requires 标签中添加 epel-release 作为第一个依赖项。
但是,当我安装我的 RPM 包时,出现错误并且安装失败。
这就是我安装包的方式。
yum localinstallinstall packagename-1-1.0.x86_64.rpm -v
我收到的错误是"No package python-pip found"
epel-release 已标记为安装。但是还没有安装,因为也没有找到 python-pip,所以失败了。
我想要实现的是它应该安装 epel-release 以及然后安装 python-pip。
RPM 尝试在安装任何东西之前解决所有依赖关系。这可以防止您安装一堆软件包,然后说 "Oops, we can't find python-pip
" 并回滚。如果尚未安装 epel-release
包,则 yum
不知道在哪里可以找到 python-pip
,因此无法配置依赖项。
问题是 python-pip
不以同样的方式依赖于 epel-release
;它不是由 RPM 系统管理的依赖项。相反,安装 epel-release
将告诉 yum
它以前不知道存在的新存储库。一旦有了它,它就可以安装 python-pip
就好了。
相反,您应该删除 epel-release
依赖项,并在文档中说明您的包需要 EPEL。