Yum
離線安裝和解決舊版本包的依賴項
我必須在 RHEL 6 伺服器上安裝一個包(我們稱之為foobar),它有一些非常嚴格的限制:
- 由於安全原因,伺服器無法訪問 Internet
- 它缺少很多包,例如缺少 C 編譯器
- 要安裝的 foobar 不是最新版本,而是以前的版本
最大的問題是解決依賴關係。由於第 3 點,我不能簡單地
yumdownloader --resolve foobar-3.1.3-1
在連接 Internet 的機器上執行以獲取 RPM,將它們傳輸到伺服器然後進行本地安裝:AFAIKyum
僅適用於最新的軟體包版本。此外,由於第 2 點,獲取 foobar 包的程式碼源並對其進行編譯不是一種選擇。
由於答案可能會引起其他人的興趣,以下是我在放寬約束 #3 後解決問題的方法。
我在另一台機器上做了 RHEL 6 的最小安裝。然後我通過 模擬了 foobar 的安裝
yum
,獲得了依賴項列表,並編寫了一個腳本來yumdownloader
獲取所有包。最後,我將 RPM 打包到本地儲存庫中並將其傳輸到伺服器。之後剩下要做的就是yum install foobar
在伺服器上執行。