總所周知,Redhat和Fedora的軟件安裝命令是rpm,但是用rpm安 裝軟件最大的麻煩就是需要手動尋找安裝該軟件所需要的一系列依賴關系,超級麻煩不說,要是軟件不用了需要卸載的話由於卸載掉了某個依賴關系而導致其他的軟 件不能用是非常惱人的。令人高興的是,Fedora終於推出了類似於ubuntu中的apt的命令yum,令Fedora的軟件安裝變得簡單容易。
yum有一下特點:
*可以同時配置多個資源庫(Repository)
*簡潔的配置文件(/etc/yum.conf)
*自動解決增加或刪除rpm包時遇到的倚賴性問題
*使用方便
*保持與RPM數據庫的一致性
yum,是Yellow dog Updater Modified的簡稱,起初是由yellow dog這一發行版的開發者Terra Soft研發,用python寫成,那時還叫做yup(yellow dog updater),後經杜克大學的Linux@Duke開發團隊進行改進,遂有此名。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相 關信息,檢查依賴性並自動提示用戶解決。yum的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http或ftp站點, 也可以是本地軟件池,但必須包含rpm的header, header包括了rpm包的各種信息,包括描述,功能,提供的文件,依賴性等.正是收集了這些 header並加以分析,才能自動化地完成余下的任務。yum的一切配置信息都儲存在一個叫yum.conf的配置文件中,通常位於/etc目 錄下,這是整個yum系統的重中之重,我在的F7中查看了這一文件,如下所示:
sudo more /etc/yum.conf
[main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 metadata_expire=1800 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d下面簡單的對這一文件作簡要的說明:
cachedir:yum緩存的目錄,yum在此存儲下載的rpm包和數據庫,一般是/var/cache/yum。
debuglevel:除錯級別,0──10,默認是2
logfile:yum的日志文件,默認是/var/log/yum.log。
exactarch,有兩個選項1和0,代表是否只升級和你安裝軟件包cpu體系一致的包,如果設為1,則如你安裝了一個i386的rpm,則yum不會用686的包來升級。
gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,默認好像也是檢查的。
接下來就是yum的使用了,首先用yum來升級軟件,yum的操作大都須有超級用戶的權限,當然可以用sudo。
yum update,這一步是必須的,yum會從服務器的header目錄下載rpm的header,放在本地的緩存中,這可能會花費一定的時間,但比起yum 給我們帶來方便,這些時間的花費又算的了什麼呢?header下載完畢,yum會判斷是否有可更新的軟件包,如果有,它會詢問你的意見,是否更新,還是說 y吧,把系統始終up to date總是不錯的,這時yum開始下載軟件包並使用調用rpm安裝,這可能要一定時間,取決於要更新軟件的數目和網絡狀況,萬一網絡斷了,也沒關系,再 進行一次就可以了。升級完畢,以後每天只要使用yum check-update檢查一下有無跟新,如果有,就用yum update進行跟新,時刻保持系統為最新,堵住一切發現的漏洞。用yum update packagename 對某個單獨包進行升級。
現在簡單的把yum軟件升級的一些命令:
[ps:更新:我在安裝wine的時候是用rpm一個一個安裝的,先安裝以來關系,然後在安裝wine的主包,但是剛剛在論壇上發現來一個好的帖子,就yum的本地安裝。參數是-localinstall
$yum localinstall wine-*這樣的話,yum會自動安裝所有的依賴關系,而不用rpm一個一個的安裝了,省了好多工作。還有一個與他類似的參數:
$yum localupdate wine-*如果有wine的新版本,而且你也下載到來本地,就可以這樣本地更新wine了]:
列出所有可更新的軟件清單. 命令:yum check-update
安裝所有更新軟件. 命令:yum update
僅安裝指定的軟件.命令:yum install
僅更新指定的軟件. 命令:yum update
列出所有可安裝的軟件清單.命令:yum list
使用yum安裝和卸載軟件,有個前提是yum安裝的軟件包都是rpm格式的。安裝的命令是,yum install xxx,yum會查詢數據庫,有無這一軟件包,如果有,則檢查其依賴沖突關系,如果沒有依賴沖突,那麼最好,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除沖突的包,你可以自己作出判斷.刪除的命令是,yum remove xxx,同安裝一樣,yum也會查詢數據庫,給出解決依賴關系的提示。
用YUM安裝軟件包. 命令:yum install
用YUM刪除軟件包. 命令:yum remove
用yum查詢想安裝的軟件.我們常會碰到這樣的情況,想要安裝一個軟件,只知道它和某方面有關,但又不能確切知道它的名字。這時yum的查詢功能就起作用了。你可以用 yum search keyword這樣的命令來進行搜索,比如我們要則安裝一個Instant Messenger,但又不知到底有哪些,這時不妨用 yum search messenger這樣的指令進行搜索,yum會搜索所有可用rpm的描述,列出所有描述中和messeger有關的rpm包,於是我們可能得到 gaim,kopete等等,並從中選擇。有時我們還會碰到安裝了一個包,但又不知道其用途,我們可以用yum info packagename這個指令來獲取信息。
使用YUM查找軟件包. 命令:yum search
列出所有可安裝的軟件包. 命令:yum list
列出所有可更新的軟件包. 命令:yum list updates
列出所有已安裝的軟件包. 命令:yum list installed
列出所有已安裝但不在 Yum Repository 內的軟件包. 命令:yum list extras
列出所指定的軟件包. 命令:yum list
使用YUM獲取軟件包信息. 命令:yum info
列出所有軟件包的信息. 命令:yum info
列出所有可更新的軟件包信息. 命令:yum info updates
列出所有已安裝的軟件包信息. 命令:yum info installed
列出所有已安裝但不在 Yum Repository 內的軟件包信息. 命令:yum info extras
列出軟件包提供哪些文件. 命令:yum provides
清除YUM緩存.yum會把下載的軟件包和header存儲在cache中,而不會自動刪除。如果我們覺得它們占用了磁盤空間,可以使用yum clean指令進行清除,更精確的用法是yum clean headers清除header,yum clean packages清除下載的rpm包,yum clean all 清除所有.
清除緩存目錄(/var/cache/yum)下的軟件包.命令:yum clean packages
清除緩存目錄(/var/cache/yum)下的 headers. 命令:yum clean headers
清除緩存目錄(/var/cache/yum)下舊的 headers. 命令:yum clean old headers
清除緩存目錄(/var/cache/yum)下的軟件包及舊的headers. 命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
以上所有命令參數的使用都可以用man來查看:
$ man yumyum配置
注:修改和增加配置文件中的資源庫,加快下載速度和擁有更多可更新的rpm包
將/etc/yum.conf的內容全部替換為
[main] cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=fedora-release tolerant=1 exactarch=1 [fedora-us-1] name=Fedora Core 1 -- Fedora US mirror baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/os [fedora-us-1-updates] name=Fedora Core 1 updates -- Fedora US mirror baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/updates [fedora-us-1-stable] name=Fedora Linux (stable) for Fedora Core 1 -- Fedora US mirror baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/stable [freshrpms] name=Fedora Linux $releasever - $basearch - freshrpms baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms