Yum

如何只允許使用 Yum 從特定儲存庫下載包?

  • June 15, 2012

語境:

我們有多個自定義添加的 yum 儲存庫(在 CentOS 6 上),我們的使用者定期通過 yum 安裝各種/任意軟體來測試東西。

我們有一個可在多個儲存庫中使用的包。它在兩個不同的儲存庫中被命名為完全相同的東西,分別稱為 Y 和 Z,但包並不相同。兩個儲存庫都用於其他事情/安裝,但有問題的軟體包只能從 repo Y 安裝。

我試過的:

當我手動安裝有問題的包時,我排除/包含 repos 以確保我得到正確的版本。但是,普通使用者 a) 忘記這樣做,並且 b) 有時會安裝其他依賴於相關軟體包的軟體包,並且作為依賴項安裝過程的一部分,它會從錯誤的 repo 安裝。

問題:

有什麼方法可以配置 yum 的預設值以說“如果包 X 可從多個來源獲得,則更喜歡/堅持源 Y 而不是源 Z?”

我的目標是不必改變yum install我們使用者目前擁有的正常流程;他們仍然應該能夠使用最簡單的語法安裝任意軟體。只是應該只允許特定的包(手動安裝或作為依賴項安裝的一部分)來自某些 repos。

yum-plugin-priorities包裹。

這使您可以優先考慮配置的儲存庫。

見這裡:http ://wiki.centos.org/PackageManagement/Yum/Priorities#head-6f52124e909c1691eb0c501ba38ae9202b66d6da

或者您可以排除/etc/yum.conf.

http://linux.die.net/man/5/yum.conf

exclude要從更新或安裝中排除的軟體包列表。這應該是一個空格分隔的列表。允許使用萬用字元(例如 * 和 ?)的 Shell glob。

這可以在全域或每個儲存庫中設置。

不,yum 有一種確定要安裝哪個版本的軟體包 X 的方法,即選擇它可以找到的最新版本(其中“最新”對於 RPM 版本比較具有特定含義)。

真的,我不建議以您描述的方式使用相同名稱的不同衝突版本。但是,如果你堅持下去,有幾個建議:

  • 為 yum install 指定一個特定版本,例如 name-ver、name-ver-rel(參見 參考資料man yum
  • 修復您的包依賴項以使用普通包名稱以外的其他內容;特定版本,或虛擬“提供”,或僅存在於所需版本中的特定文件,或區分各種版本的其他內容。

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