2017-10-06 150 views
0

我有一個RPM軟件包mypackge和最近的更改我的軟件需要我添加OpenSSL v1.0.2作爲依賴項。Yum沒有解決本地升級的新軟件包依賴

最初RPM規格包含以下要求行:

Requires: openssl policycoreutils-python python2-pip ... 

我已經更新了此行:

Requires: openssl >= 1.0.2 policycoreutils-python python2-pip ... 

這似乎完美地爲新安裝工作,新的依賴得到解決,按預期方式安裝。問題是當我嘗試更新現有安裝...

[[email protected]]# yum install mypackage-1.2.1.4-1.x86_64.rpm 
Loaded plugins: fastestmirror 
Examining mypackage-1.2.1.4-1.x86_64.rpm: mypackage-1.2.1.4-1.x86_64 
Marking mypackage-1.2.1.4-1.x86_64.rpm as an update to mypackage-1.2.1.3-1.x86_64 
Resolving Dependencies 
--> Running transaction check 
---> Package mypackage-1.2.1.3-1 will be updated 
---> Package mypackage-1.2.1.4-1 will be an update 
--> Finished Dependency Resolution 

Dependencies Resolved 
=========================================================================== 
Package Arch Version Repository       Size 
=========================================================================== 
Updating: 
mypackage x86_64 1.2.1.4-1 /mypackage-1.2.1.4-1.x86_64.rpm  5.0 M 

Transaction Summary 
=========================================================================== 
Upgrade 1 Package 

出於某種原因,新的OpenSSL依賴沒有解決或安裝,這是正常現象,如果是的話我應該如何去增加額外的依賴關係現有的軟件包?

在此先感謝!

+0

這不是預期的行爲。哪個openssl安裝在你運行的機器上?也許新的openssl已經存在了?試試看看openssl提供了什麼:'rpm -q openssl --provides' –

+0

ah right;在尚未安裝openssl的新機器上;如果可以的話,yum將始終採用最新版本的軟件包。 –

+0

安裝的openssl是1.0.1,--provides的輸出是'openssl = 1:1.0.1e-60.el7'和'openssl(x86-64)= 1:1.0.1e-60.el7' –

回答

1

該問題與時代編號有關。您的版本需要openssl >= 1.0.2。然而openssl包提供了1:1.0.1時代數字是最重要的數字。事實上,rpm讀取您的要求openssl >= 1.0.2openssl >= 0:1.0.2

您的問題將得到解決,如果你說:

Requires: openssl >= 1:1.0.2 

:當你做一個乾淨的安裝和尚未安裝OpenSSL的; yum默認採用最新版本;這誘使你認爲你的需求有效。

供進一步閱讀;看起來here

+0

輝煌的這對我的作品非常感謝!我想我現在唯一的困惑是爲什麼這個工作在乾淨的安裝(openssl 1.0.1e默認安裝在CentOS發行版中)? –