我将我的产品作为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)
答案 0 :(得分:2)
Requires: openssl
会导致您的包具有非特定的openssl
要求。
但是,如果您的包链接到openssl库(而不是仅仅使用openssl
命令行工具等),那将无法帮助您,因为rpm
将获取共享库依赖项本身,并在您的包的要求中包含它们(按版本/等)。
你可以通过禁用自动需求处理来关闭它(但在CentOS 5中这是一个全有或全无的命题),但仍然无法帮助所有CentOS版本上的运行 。为此,您需要包含三个不同版本的库/二进制文件。每个版本的CentOS都链接每个版本的openssl(尽管可能只有一个用于CentOS 6和CentOS 7,因为它们都在1.0.1
上)。