Yum
如何只允許使用 Yum 從特定儲存庫下載包?
語境:
我們有多個自定義添加的 yum 儲存庫(在 CentOS 6 上),我們的使用者定期通過 yum 安裝各種/任意軟體來測試東西。
我們有一個可在多個儲存庫中使用的包。它在兩個不同的儲存庫中被命名為完全相同的東西,分別稱為 Y 和 Z,但包並不相同。兩個儲存庫都用於其他事情/安裝,但有問題的軟體包只能從 repo Y 安裝。
我試過的:
當我手動安裝有問題的包時,我排除/包含 repos 以確保我得到正確的版本。但是,普通使用者 a) 忘記這樣做,並且 b) 有時會安裝其他依賴於相關軟體包的軟體包,並且作為依賴項安裝過程的一部分,它會從錯誤的 repo 安裝。
問題:
有什麼方法可以配置 yum 的預設值以說“如果包 X 可從多個來源獲得,則更喜歡/堅持源 Y 而不是源 Z?”
我的目標是不必改變
yum install
我們使用者目前擁有的正常流程;他們仍然應該能夠使用最簡單的語法安裝任意軟體。只是應該只允許特定的包(手動安裝或作為依賴項安裝的一部分)來自某些 repos。
有
yum-plugin-priorities
包裹。這使您可以優先考慮配置的儲存庫。
或者您可以排除
/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
)- 修復您的包依賴項以使用普通包名稱以外的其他內容;特定版本,或虛擬“提供”,或僅存在於所需版本中的特定文件,或區分各種版本的其他內容。