【问题标题】:Configure depencencies in RPM spec file在 RPM 规范文件中配置依赖项
【发布时间】:2018-12-04 20:05:29
【问题描述】:

我正在尝试使用 RPM 托管 django Web 应用程序。

当安装在裸机 centos 机器上时,此 RPM 软件包应安装所有所需的依赖项并配置 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 --> 依赖于 --> epel-释放

这就是为什么我在 Requires 标记的规范文件中添加了 epel-release 作为第一个依赖项。

但是,当我安装我的 RPM 包时,我收到错误并且安装失败。

这就是我安装包的方式。

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

我收到的错误是“找不到包 python-pip”

epel-release 标记为安装。但是还没有安装,因为python-pip也没有找到,所以失败了。

我想要实现的是它也应该安装 epel-release,然后也安装 python-pip。

【问题讨论】:

    标签: pip rpm rpmbuild


    【解决方案1】:

    RPM 在安装任何东西之前尝试解析所有依赖项。这可以防止您安装一堆软件包,然后说“糟糕,我们找不到python-pip”并回滚。如果epel-release 包尚未安装,则yum 不知道在哪里可以找到python-pip,因此无法配置依赖项。

    问题是python-pip 不以同样的方式依赖epel-release;它不是由 RPM 系统管理的依赖项。相反,安装epel-release 将告诉yum 一个它以前不知道存在的新存储库。一旦有了它,它就可以安装python-pip 就好了。

    相反,您应该删除 epel-release 依赖项,并在文档中说明您的包需要 EPEL。

    【讨论】:

    • 感谢 Daniel 的精彩解释。
    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 2019-07-01
    • 2021-02-02
    • 1970-01-01
    • 2020-01-03
    • 2020-09-05
    • 2014-10-07
    • 1970-01-01
    相关资源
    最近更新 更多