Redhat

告訴 yum 安裝我的包依賴項的確切版本

  • June 11, 2018

我想安裝一個名為pA.

  • pA-1.0.0-0取決於包pB-1.0.0-0
  • 在 yum 儲存庫中,可以同時找到pB-1.0.0-0pB-1.1.0-0
  • pA-1.0.0-0與 不兼容pB-1.1.0-0,並且此資訊在 RPM 中未提及,pA因為在打包pB-1.1.0-0時不存在。pA

這是嘗試安裝時出現的pA問題yum

$ yum localinstall pA-1.0.0-0.el7.x86_64.rpm
...
Resolving Dependencies
-> Processing Dependency: pB >= 1.0.0 for package: pA-1.0.0-0.el7.x86_64
--> Package pB.x86_64 0:1.1.0-0.el7 will be installed # <-- version 1.1! ho no!

是否有命令行選項yum要求它安裝其依賴項所需的特定版本?

具體在這裡,安裝pA-1.0.0-0.el7.x86_64而不是pA-1.1.0-0.el7.x86_64.

注意:我不能pA手動處理 ’s 依賴項:在我的真實場景中,有無數的依賴項我不會單獨安裝rpm.

無法直接執行您的要求,但您可以在安裝主軟體包之前安裝特定版本的依賴項:

yum install pB-1.0.0-0
yum install pA

為了防止pB在更新系統的其餘部分時被升級,您可以使用該versionlock外掛yum

yum install yum-plugin-versionlock
yum versionlock pB-*

這將鎖定在pB鎖定到位時安裝的任何版本的版本。請參閱如何限制 yum 將軟體包安裝或升級到固定的特定軟體包版本?

編輯:如果您不想/不能處理在所需版本中手動安裝依賴項,您可以添加 deps 列表及其版本/etc/yum/pluginconf.d/versionlock.list以確保在 install 時安裝特定版本pA

引用自:https://serverfault.com/questions/916088