站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

邁向 RHCE 之路 (Day13) - YUM 套件管理工具

絕大部份的開放原始碼軟體皆採用 [Tarball] 的形式進行發布,而在 Linux 上為了解決使用 Tarball 必須要解壓縮、檢測 (./configure)、編譯 (make)、安裝 (make install) 等繁鎖步驟,因此發展出 [RPM (The RPM Package Manager)] 來簡化整個安裝流程。雖然 RPM 安裝機制簡化了整個安裝流程但卻無法解決套件相依性及套件相衝突的問題,舉例來說您可能安裝 A RPM 時系統顯示您必須要先安裝 B RPM(套件相依性),而當您下載及安裝 B RPM 時又說需要安裝 C RPM(套件相依性),當您好不容易又下載及安裝 C RPM 時卻出現此 RPM 跟 A RPM 互相衝突,碰到這種情況時在以往您只能手動排除這種套件衝突的狀況了。

[YUM (Yellow dog Updater Modified)] 套件管理工具便是解決上述 RPM 套件相依性及相衝突的問題而發展出來的套件管理解決方案。此套件管理工具能從指定的套件伺服器上自動下載相對應的 RPM 套件包至系統進行安裝,並且當出現套件相依性時能自動下載及安裝相關聯的 RPM 套件,同時會盡量避免發生套件衝突的情況。YUM 能夠有效簡化軟體套件安裝流程並解決惱人的套件相依性及相衝突的問題,使得軟體套件在安裝、移除、升級程序上變得非常容易。

預設 YUM 下載套件的來源伺服器為國外網站,我們可以透過修改 YUM 設定檔 (/etc/yum.repos.d/CentOS-Base.repo) 將下載套件的鏡像網站指定至台灣境內各所大學或機構。目前台灣可以使用的鏡像網站約有 8 個(如下所示),請您依個人網路狀況選擇較適合您的網路環境進行設定以便加快套件下載速度,或者參考 [CentOS 鏡像網站清單] 選擇位於您國家內的鏡像網站:

下列操作步驟為將 YUM 設定檔中鏡像網站由預設的國外修改為國內的元智大學:

 #cd /etc/yum.repos.d                       //切換至 YUM 設定檔資料夾
 #cp CentOS-Base.repo CentOS-Base.repo.bak  //備份原 YUM 設定檔
 #sed -i 's,mirror.centos.org/centos,ftp.cse.yzu.edu.tw/pub/CentOS,g' CentOS-Base.repo  //指向至元智大學

上述設定完成後您便可以開始使用 YUM 配合相關指令管理套件,但是在開始以前筆者建議您先手動更新 CentOS 的主機時間,以免後續管理相關套件時因為本機系統時間與 YUM 鏡像網站時間差異過大造成不可預期的錯誤。在後續文章中會說明如何設定 CentOS 主機自動與網際網路上的主機定時校對系統時間。

 #ntpdate -s watch.stdtime.gov.tw  //手動校對系統時間
 #date                             //查看系統時間是否正確
 #hwclock                          //查詢系統時間與 BIOS 時間差
 #hwclock –w                      //將目前系統時間寫入至 BIOS 內

下列條列出使用 YUM 套件管理工具時常常會使用到的指令及相關參數意義:

由於 YUM 套件管理工具實際上也是幫助我們對 RPM 套件包進行管理的工作,其實底層的安裝、移除、升級等動作仍是使用 RPM 套件,因此我們仍可以使用 rpm 指令來幫助我們了解及管理套件,例如我們使用 YUM 套件管理工具為 CentOS 主機安裝 VNC Server 套件後我們可以使用 rpm 指令來了解剛才安裝的 VNC Server 套件、設定檔及服務啟動檔在哪裡。

 #rpm -qa logwatch      //查詢套件版本資訊
  logwatch-7.3.6-49.el6.noarch
 #rpm -qc logwatch      //列出此套件的設定檔及服務啟動檔
  /etc/logwatch/conf/ignore.conf
  /etc/logwatch/conf/logwatch.conf
  /etc/logwatch/conf/override.conf
  /usr/share/logwatch/default.conf/logwatch.conf
 #rpm -ql logwatch      //列出此套件的所有檔案
  /etc/cron.daily/0logwatch
  /etc/logwatch
  /etc/logwatch/conf
  /etc/logwatch/conf/ignore.conf
  /etc/logwatch/conf/logfiles
  /etc/logwatch/conf/logwatch.conf
  ...略...
Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com