gpt4 book ai didi

rpm - 如何使用RPM spec文件泛化第三方依赖包版本?

转载 作者:行者123 更新时间:2023-12-04 20:38:23 25 4
gpt4 key购买 nike

我将我的产品作为 RPM 分发,并希望使用 Requires 标记来强制执行依赖项。

我如何概括依赖包版本,以支持我的用户可能拥有的不同操作系统版本(这会影响依赖包构建)?

例如,openssl 软件包可能是以下之一,取决于用户 CentOS 版本:

openssl-0.9.8e-31.el5_11.<arch>.rpm (CentOS-5.11)
openssl-1.0.1e-30.el6_6.2.<arch>.rpm (CentOS-6.6)
openssl-1.0.1e-34.el7_0.6.<arch>.rpm (CentOS-7.0.1406)

最佳答案

Requires: openssl 将导致您的包有一个不明确的 openssl 要求。

但是,如果您的包链接到 openssl 库(而不是仅使用 openssl 命令行工具等),那将无济于事,因为 rpm将自己获取共享库依赖项并将它们(按版本/等)包含在您的包的要求中。

你可以通过禁用自动需求处理来关闭它(但在 CentOS 5 中这是一个全有或全无的命题)但这仍然无助于在所有 CentOS 版本上运行 .为此,您需要包含三个不同版本的库/二进制文件。每个链接到每个版本的 CentOS 的每个版本的 openssl(尽管可能只有一个用于 CentOS 6 和 CentOS 7,因为它们都在 1.0.1 上)。

关于rpm - 如何使用RPM spec文件泛化第三方依赖包版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com