我的包的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
。但是,安装成功没有任何问题。我在这里缺少什么?
答案 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.2g
和1.0.1e