一、yum 簡介
yum,是Yellow dog Updater, Modified 的簡稱,是杜克大學為了提高RPM 軟件包安裝性而開發的一種軟件包管理器。起初是由yellow dog 這一發行版的開發者Terra Soft 研發,用python 寫成,那時還叫做yup(yellow dog updater),后經杜克大學的Linux@Duke 開發團隊進行改進,遂有此名。yum 的宗旨是自動化地升級,安裝/移除rpm 包,收集rpm 包的相關信息,檢查依賴性并自動提示用戶解決。yum 的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http 或ftp 站點,也可以是本地軟件池,但必須包含rpm 的header,header 包括了rpm 包的各種信息,包括描述,功能,提供的文件,依賴性等。正是收集了這些header 并加以分析,才能自動化地完成余下的任務。
yum 的理念是使用一個中心倉庫(repository)管理一部分甚至一個distribution 的應用程序相互關系,根據計算出來的軟件依賴關系進行相關的升級、安裝、刪除等等操作,減少了Linux 用戶一直頭痛的dependencies 的問題。這一點上,yum 和apt 相同。apt 原為debian 的deb 類型軟件管理所使用,但是現在也能用到RedHat 門下的rpm 了。
yum 主要功能是更方便的添加/刪除/更新RPM 包,自動解決包的倚賴性問題,便于管理大量系統的更新問題。
yum 可以同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf),自動解決增加或刪除rpm 包時遇到的依賴性問題,保持與RPM 數據庫的一致性。
二、yum 安裝
CentOS 默認已經安裝了yum,不需要另外安裝,這里為了實驗目的,先將yum 卸載再重新安裝。
1、查看系統默認安裝的yum
# rpm -qa|grep yum

2、卸載yum
# rpm -e yum-fastestmirror-1.1.16-14.el5.centos.1 yum-metadata-parser-1.1.2-3.el5.centos yum-3.2.22-33.el5.centos

3、重新安裝yum
這里可以通過wget 從網上下載相關包安裝,也可以掛載系統安裝光盤進行安裝,這里選擇掛載系統安裝光盤進行安裝。
# mount /dev/cdrom /mnt/cdrom/# rpm -ivh yum-3.2.22-33.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm# yum -v
yum 的基礎安裝包包括:
yum //RPM installer/updater yum-fastestmirror //Yum plugin which chooses fastest repository from a mirrorlist yum-metadata-parser //A fast metadata parser for yum其他安裝包根據自己需要安裝。

三、yum 配置
yum 的配置文件分為兩部分:main 和repository
main 部分定義了全局配置選項,整個yum 配置文件應該只有一個main。常位于/etc/yum.conf 中。 repository 部分定義了每個源/服務器的具體配置,可以有一到多個。常位于/etc/yum.repo.d 目錄下的各文件中。yum.conf 文件一般位于/etc目錄下,一般其中只包含main部分的配置選項。
# cat /etc/yum.conf
[main]cachedir=/var/cache/yum //yum 緩存的目錄,yum 在此存儲下載的rpm 包和數據庫,默認設置為/var/cache/yumkeepcache=0 //安裝完成后是否保留軟件包,0為不保留(默認為0),1為保留debuglevel=2 //Debug 信息輸出等級,范圍為0-10,缺省為2logfile=/var/log/yum.log //yum 日志文件位置。用戶可以到/var/log/yum.log 文件去查詢過去所做的更新。pkgpolicy=newest //包的策略。一共有兩個選項,newest 和last,這個作用是如果你設置了多個repository,而同一軟件在不同的repository 中同時存在,yum 應該安裝哪一個,如果是newest,則yum 會安裝最新的那個版本。如果是last,則yum 會將服務器id 以字母表排序,并選擇最后的那個服務器上的軟件安裝。一般都是選newest。distroverpkg=redhat-release //指定一個軟件包,yum 會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm 包。tolerant=1 //有1和0兩個選項,表示yum 是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum 不會出現錯誤信息。默認是0。exactarch=1 //有1和0兩個選項,設置為1,則yum 只會安裝和系統架構匹配的軟件包,例如,yum 不會將i686的軟件包安裝在適合i386的系統中。默認為1。retries=6 //網絡連接發生錯誤后的重試次數,如果設為0,則會無限重試。默認值為6.obsoletes=1 //這是一個update 的參數,具體請參閱yum(8),簡單的說就是相當于upgrade,允許更新陳舊的RPM包。plugins=1 //是否啟用插件,默認1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum# Note: yum-RHN-plugin doesn't honor this.metadata_expire=1hinstallonly_limit = 5# PUT YOUR REPOS HERE OR IN separate files named file.repo# in /etc/yum.repos.d
新聞熱點
疑難解答