如何使用RPM spec文件推广第三方依赖包版本?

时间:2014-12-28 07:30:49

标签: rpm

我将我的产品作为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)

1 个答案:

答案 0 :(得分:2)

Requires: openssl会导致您的包具有非特定的openssl要求。

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

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