如何在rpm spec文件中指定最低版本openssl的要求?

时间:2016-04-21 05:05:51

标签: linux openssl rpm rhel rpm-spec

我的包的rpm规范文件如下所示:

    Requires:mysql-server >= 5.5.30, java >= 1.6, p7zip, openssl >= 1.0.2g

我有一个RHEL系统,OpenSSL版本是这样的:

    [ag@rhel1]# openssl
    OpenSSL> version
    OpenSSL 1.0.1e-fips 11 Feb 2013

    [ag@rhel1]# rpm -q --whatprovides openssl
    openssl-1.0.1e-51.el7_2.4.x86_64

当我尝试测试我的rpm包的安装时,它应该会失败,因为我的包需要至少1.0.2g而安装了1.0.1e。但是,安装成功没有任何问题。我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

比较值的syntax是:[epoch:] version [-release]。如果没有纪元,则假设为0.

但是OpenSSL的纪元设置为1.请参阅rpm -qi openssl

Name        : openssl
Epoch       : 1
Version     : 1.0.2g
...

当然1:0.0.0> 0:9999.9999.99999。

所以这应该有效:

Requires: openssl >= 1:1.0.2g

答案 1 :(得分:0)

在我的Opensuse13.1-32bit上,OpenSSL没有纪元。不能保证rpm可以确定哪个版本号比另一个更新。他们在Maximum Rpm documentation说:

  

确定版本1.5早于1.6版本非常简单。但是2.01和2.1呢?还是7.6a和7.6? RPM无法跟上正在使用的所有不同版本编号方案。

因此,rpm可能无法解释1.0.2g1.0.1e

之间哪个更新