iT邦幫忙

DAY 13
5

邁向 RHCE 之路系列 第 13

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

  • 分享至 

  • xImage
  •  

絕大部份的開放原始碼軟體皆採用 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 鏡像網站清單 選擇位於您國家內的鏡像網站:
元智大學: [http://ftp.cse.yzu.edu.tw/pub/CentOS/]
靜宜大學: [http://ftp.cs.pu.edu.tw/Linux/CentOS/]
中山大學: [http://ftp.nsysu.edu.tw/CentOS/]
義守大學: [http://ftp.isu.edu.tw/pub/Linux/CentOS/]
樹德科技大學: [http://ftp.stu.edu.tw/Linux/CentOS/]
台中縣教網中心: [http://ftp.tcc.edu.tw/Linux/CentOS/]
Hinet IDC: [http://mirror01.idc.hinet.net/CentOS/]
國家高速網路與計算中心: [http://ftp.twaren.net/Linux/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 check-update:套件更新檢查,將目前系統上安裝的套件與 YUM 鏡像網站進行檢查比對後列出需要更新套件的清單。
yum update:套件更新,檢查及比對系統需要套件更新的清單後詢問您是否要更新套件,您可以配合參數 –y 對所有詢問一律回答 yes 來允許所有套件更新。
yum install <套件名稱>:安裝套件,執行從 YUM 鏡像網站下載指定套件並進行安裝,收集相關資訊後會詢問您是否確定要安裝,您可以配合參數 –y 對所有詢問一律回答 yes 來安裝指定套件及其相依性套件。
yum remove <套件名稱>:移除套件,移除您指定的套件名稱,收集相關資訊後會詢問您是否確定要移除該套件,您可以配合參數 –y 對所有詢問一律回答 yes 來移除指定的套件及相依性套件。
yum clean all:清除暫存資料,清除使用 YUM 套件管理工具下載 RPM 進行安裝時的暫存檔案。
yum search <套件名稱或關鍵字>:搜尋套件,您可使用已經知道的套件名稱或者有關於套件的關鍵字來進行搜尋的動作。
yum list:顯示可安裝套件清單,顯示您指定的 YUM 鏡像網站中所支援安裝的所有套件名稱。
yum info <套件名稱>:套件資訊,顯示您指定的套件其詳細資訊,例如適用平台、套件版本、套件大小、套件功能描述、套件授權資訊、套件官方網址等資訊。
yum grouplist:顯示可安裝的套件群組清單,顯示您指定的 YUM 鏡像網站中所支援安裝的所有套件群組名稱。
yum groupinstall <套件群組名稱>:安裝套件群組,執行從 YUM 鏡像網站下載指定套件群組中相關套件並進行安裝,收集套件群組相關資訊後會詢問您是否確定要安裝,您可以配合參數 –y對所有詢問一律回答 yes 來安裝指定套件及其相依性套件。
yum groupremove <套件群組名稱>:移除套件群組,移除您指定的套件群組,並且在系統收集相關資訊後,會詢問是否確定要移除該套件群組中所有套件,您可以配合參數 –y 對所有詢問一律回答 yes 來移除指定的套件群組。
yum groupinfo <套件群組名稱>:查詢套件群組資訊,查詢指定的套件群組資訊及功能描述,並且將顯示此套件群組中預設會安裝的套件清單 (Default Packages)、強制安裝的套件清單 (Mandatory Packages)、選擇安裝的套件清單 (Optional Packages)。

由於 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
 ...略...

(上一篇)邁向 RHCE 之路 (Day12) - 排程 (at、crontab、anacron)
(下一篇)邁向 RHCE 之路 (Day14) - SELinux 安全增強機制
邁向 RHCE 之路系列文章連結


上一篇
邁向 RHCE 之路 (Day12) - 排程 (at、crontab、anacron)
下一篇
邁向 RHCE 之路 (Day14) - SELinux 安全增強機制
系列文
邁向 RHCE 之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
chiounan
iT邦研究生 1 級 ‧ 2011-10-20 10:07:10

讚
每天都要看
筆記

0
weithenn
iT邦新手 4 級 ‧ 2011-10-20 10:18:47

感謝支持!!謝謝

我要留言

立即登入留言