2016-04-21 33 views
0

我的包RPM說明文件看起來是這樣的 -如何在rpm spec文件中指定最低版本的openssl的要求?

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

我有一個RHEL系統中OpenSSL的版本是這樣的 - 將[Ag @ rhel1]#OpenSSL的 的OpenSSL>版本 OpenSSL的1.0.1e- FIPS 2013年2月11日

[[email protected]]# rpm -q --whatprovides openssl 
    openssl-1.0.1e-51.el7_2.4.x86_64 

當我嘗試測試安裝我的rpm包的,它應該是失敗的,因爲我的包至少需要1.0.2g的,而安裝1.0.1e。但是,安裝成功沒有任何問題。我在這裏錯過了什麼?

回答

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 
0

我Opensuse13.1-32bit,OpenSSL的沒有劃時代。不能保證rpm能找出哪個版本號比另一個更新。在Maximum Rpm documentation他們說:

確定版本1.5比版本1.6早是相當簡單的。但是2.01和2.1呢?還是7.6a和7.6? RPM無法跟上正在使用的所有不同版本編號方案。

所以有可能是轉只是無法破譯其中之一是1.0.2g和1.0.1e

+1

你總是可以嘗試'rpmdev-vercmp'看到的結果之間新。是的,不同的操作系統可以有不同的時代或版本。因此開發人員可能希望使用'%if 0%{rhel}'和類似的條件。 – msuchy

+0

@msuchy tx提示rpmdevtools;我甚至不知道它們存在,現在我正在用rpm工作大約2年...我會看看它們。順便說一句,你已經得到我的贊同了:) –

相關問題