【问题标题】:Building RPM package requires packages from outside repositories构建 RPM 包需要来自外部存储库的包
【发布时间】:2020-07-03 10:56:52
【问题描述】:

我开发了一个 python 脚本,想把它放在一个 RPM 包中。唯一的问题是这个脚本使用了 ovirtsdk4 模块,它不是内置的 python 模块之一。话虽如此,我必须在 RPM 包中安装这个模块。我可以想到两种方法来解决这个问题:

1 - 在 %post 部分使用 pip3。

2 - 将 python3-ovirt-engine-sdk4 放入“Requires: package”部分。

然而,第一种方法似乎不太可靠,第二种方法似乎无法正常工作,因为 CentOS-XXX 软件库中没有此软件包。 (它属于 ovirt repo)。

你能想出更好的方法来解决这个问题还是我错过了什么?

非常感谢。

【问题讨论】:

    标签: python-3.x rpmbuild ovirt


    【解决方案1】:

    软件包不在 CentOS 存储库中这一事实应该不会造成任何问题,只要确保您可以从 ovirt 存储库下载,那么更新应该可以正常运行。

    如果可以,请先手动测试yum install python3-ovirt-engine-sdk4

    编辑:不要使用 pip3 安装,因为那样你就无法使用 rpm 管理依赖项。你有正确的直觉尝试使用 rpm 依赖项。

    【讨论】:

    • 如果我安装了 oVirt 存储库,我只能手动安装它,而我在许多将安装此 RPM 的服务器上都没有。
    • ...这很合乎逻辑,那么您期望获得什么?你必须想办法把这个包和它的依赖放到你的服务器上。因此,要么下载并开始将这个包(及其所有依赖项)复制到所有服务器,要么只需在服务器上配置 ovirt 存储库。
    • 这正是我在这里要问的。有没有办法在 RPM 包中配置 ovirt 存储库?手动配置它没有逻辑。
    • 不,那是不可能的,那将是鸡/蛋的问题。当yum尝试确定您的软件包是否可安装时,它使用系统上可用的存储库,因此虽然您可以在安装时添加存储库(最好是通过打包一个 .repo 文件),但对于yum 来说太迟了解决依赖关系。
    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 2019-09-23
    • 2018-01-29
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多