我不是來自系統管理員背景,但是由於某些原因我需要執行一些任務,如下所述:
我需要在 4-5 個節點的 RHEL 中安裝一些軟體包,在 RHEL 7.x 作業系統中使用「yum」。為此,我遇到了各種術語,例如: yum
、、 。.repo
.rpm
我有點理解使用yum
我們可以安裝軟體,但我在如何yum
從互聯網獲取軟體方面遇到困難。
誰能幫我理解以下幾點:
1) 是yum
軟體安裝的程式嗎?
2)什麼是.rpm
?.rpm
有實際安裝的軟體嗎?是.rpm
不是有點類似.tar
?
3) 如何yum
從網路取得/下載軟體?它查閱.repo
文件嗎?
4)當我們編寫時yum - y install some_program
,是先從網路下載二進位檔案然後安裝還是我們需要做一些事情rsync
。
我很困惑,我確實嘗試在網路上尋找答案,但我的疑慮仍然存在。誰能用簡單的話幫助我?
答案1
RPM 是軟體包。一些軟體的軟體包。它包含 CPIO 存檔中的檔案(類似於 tar,只是格式不同)和一些資訊(例如它需要哪些其他套件)以及安裝/升級/刪除套件時需要運行的腳本(這些由 /usr 自動運行) /bin/ rpm)。
大多數 Linux 軟體都是動態連結的。即對於 firefox 包,您需要 libnss 包(以及其他一些包)。這樣做的好處是,如果存在錯誤/安全性問題,則該程式庫的維護者只需更新該程式庫,而無需重新編譯使用該程式庫的所有程式(可能有數百個)。
典型發行版 (RHEL) 由數千個 RPM 軟體包組成。它們被分組在一個稱為儲存庫的目錄中。紅帽提供了一些基礎儲存庫。然後還有一些其他儲存庫,其中包含一些產品(例如 OpenStack 或 Satellite 或其他東西所需的所有軟體包)。最著名的存儲庫之一是 EPELhttps://fedoraproject.org/wiki/EPEL其中包含 RHEL 的軟體包。它提供了 RHEL 中缺少的軟體,並由社群支援(即無保固)。
雖然您可以手動下載 RPM 軟體包並使用它進行安裝,但
/usr/bin/rpm -Uvh somepackage.rpm
您很可能會遇到一些somelibrary
所需的錯誤。如果您下載軟體包並嘗試安裝它,您將收到someotherlibrary
所需的錯誤。這稱為依賴鏈。有時這種依賴甚至是循環的,你無法一一安裝。當您安裝某些軟體時,通常需要數十甚至數百個依賴項。手動安裝它們會花費很多時間。YUM 是一個程序,它將自動解決依賴關係並從儲存庫中選擇最佳套件來滿足這些依賴關係。因此,即使升級和安裝某些軟體也是一件容易的事。例如
yum install firefox
。Yum 可以為您下載軟體包。它只需要知道這些儲存庫的 URL(請記住,您可以為您的系統配置一個或多個儲存庫)。 URL 儲存在
.repo
文件中。他們居住在/etc/yum.repos.d/
.它是純文字檔案(INI 格式),包含 URL 和一些其他資訊(例如,套件是否經過 GPG 簽署)。如果您正確設定了儲存庫文件,則 YUM 可以輕鬆地從這些儲存庫安裝軟體。當您執行時,/usr/bin/yum install firefox
它將從所有配置的存儲庫下載信息,然後它會通知您將安裝 firefox 和 X 其他依賴項。當您確認後,它將下載這些軟體包,然後安裝它們。無需運行 rsync。