yum是干什麼的
使用redhat,fedora的linuxer肯定都為rpm著名的dependency hell而頭疼(這也是所有基於rpm發行版都有的問題)。foo is needed by bar,bar is needed by foo。要裝卸個軟件,還得辛辛苦苦地梳理清楚所有依賴性問題,rpm的幾個搜索站點成了時常光顧的場所,如果不幸碰到循環依賴,那就只有干瞪眼的分了。 有時加個--nodeps參數,倒是眼不見,心不煩,但這樣裝上的軟件,你能保證正常使用嗎,這樣卸載軟件,你能保證不影響其它軟件工作嗎,恐怕誰也不能 給出肯定的答案。每到這時,帽子們只有看著debian的 apt暗自羨慕了。好在,這些都已經成為過去時了。基於rpm的發行版現在也有了像apt那樣自 動解決依賴關系的包管理工具了。其中一個著名的就是apt4rpm,這基本上是debian系統apt的在rpm發行版的移植。但是使用Redhat和 Fedora的linuxer你們知道嗎,還有一個與apt功能類似的rpm包管理系統,那就是yum。Fedora系統已經自帶,Redhat也有相應 的rpm下載。與apt相比,yum的功能一點也不弱,甚至還有許多勝過apt 之處。比如說,yum是Fedora系統自帶的,因此它能使用fedora官方的軟件源,完成各種官方發布>的各種升級。對於第三方軟件源的支持,yum也 不差,大多數支持apt的repository注,也能支持yum,比如說freshrpms,fedora.us,livna等等。此外yum有一個比較 詳細的log,可以查看何時升級安裝了什麼軟件包等。yum的代碼較apt更為精簡等。
一. yum是什麼
yum = Yellow dog Updater, Modified主要功能是更方便的添加/刪除/更新RPM包.它能自動解決包的倚賴性問題.
它能便於管理大量系統的更新問題
注:為什麼要使用yum而不用apt,最簡單的原因,Fedora自帶
二. yum特點
*可以同時配置多個資源庫(Repository)
*簡潔的配置文件(/etc/yum.conf)
*自動解決增加或刪除rpm包時遇到的倚賴性問題
*使用方便
*保持與RPM數據庫的一致性
三. yum安裝
Fedora自帶
#rpm -ivh yum-2.0.4-2.noarch.rpm
四. yum配置
注:修改和增加配置文件中的資源庫,加快下載速度和擁有更多可更新的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
五. yum應用
注:當第一次使用yum或yum資源庫有更新時,yum會自動下載所有所需的headers放置於/var/cache/yum目錄下,所需時間可能較長.
檢查有哪些可更新的rpm包
#yum check-update
安裝rpm包,使xmms可以播放mp3
#yum install xmms-mp3
安裝mplayer,同時自動安裝相關的軟件
#yum install mplayer
刪除licq包,同時刪除與該包有倚賴性的包
#yum remove licq
注:同時會提示刪除licq-gnome,licq-qt,licq-text,非常方便
系統更新(更新所有可以升級的rpm包,包括kernel)
#yum -y update
每天定期執行系統更新
#chkconfig yum on
#service yum start
六. yum指令詳解
*rpm包的更新
檢查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大規模的版本升級,與yum update不同的是,連舊的淘汰的包也升級
#yum upgrade
*rpm包的安裝和刪除
安裝rpm包,如xmms-mp3
#yum install xmms-mp3
刪除rpm包,包括與該包有倚賴性的包
#yum remove licq
注:同時會提示刪除lic
q-gnome,licq-qt,licq-text
*yum暫存(/var/cache/yum/)的相關參數
清除暫存中rpm包文件
#yum clean packages
清除暫存中rpm頭文件
#yum clean headers
清除暫存中舊的rpm頭文件
#yum clean oldheaders
清除暫存中舊的rpm頭文件和包文件
#yum clean或#yum clean all
注:相當於yum clean packages + yum clean oldheaders
*rpm包列表
列出資源庫中所有可以安裝或更新的rpm包
#yum list
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包
列出資源庫中所有可以更新的rpm包
#yum list updates
列出已經安裝的所有的rpm包
#yum list installed
列出已經安裝的但是不包含在資源庫中的rpm包
#yum list extras
注:通過其它網站下載安裝的rpm包
*rpm包信息顯示(info參數同list)
列出資源庫中所有可以安裝或更新的rpm包的信息
#yum info
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包的信息
#yum info mozilla
#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包的信息
列出資源庫中所有可以更新的rpm包的信息
#yum info updates
列出已經安裝的所有的rpm包的信息
#yum info installed
列出已經安裝的但是不包含在資源庫中的rpm包的信息
#yum info extras
注:通過其它網站下載安裝的rpm包的信息
*搜索rpm包
搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索
搜索有包含特定文件名的rpm包
#yum provides realplay
七. 安全的更新freshrpms.net的rpm包
安裝freshrpms.net的GPG key #rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txt
編輯/etc/yum.conf,增加以下信息到尾部
[freshrpms]
name=Fedora Linux $releasever - $basearch - freshrpms
baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms
gpgcheck=1
注:
檢查GPG Key
# rpm -qa gpg-pubkey*
顯示Key信息
#rpm -qi gpg-pubkey-e42d547b-3960bdf1
刪除Key
#rpm -e gpg-pubkey-e42d547b-3960bdf1