解決依賴好幫手!!! 軟體包管理器
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
軟體包來源
可供Yum下載的軟體包包括Fedora本身的軟體包以及源自rpmfusion和rpm.livna.org的Fedora Extras,全部是由Linux社區維護的,並且基本是自由軟體。所有的包都有一個獨立的GPG簽名,主要是為了您的系統安全。而對於Fedora core 4.0 的使用者,rpm.livna.org 的簽名是自動匯入並安裝的。
圖形化前端
Yum的圖形化前端主要有yumex和kyum。它們並不是獨立於Yum的,而是Yum的圖形前端,也就是說在安裝和使用Yumex和kyum同時,都是以Yum的安裝和配置為基礎;所以在用Yumex或kyum 時,必須先安裝配置Yum。
常用命令列命令
安裝軟體(以foo-x.x.x.rpm為例):yum install foo-x.x.x.rpm
yum常用命令
刪除軟體:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm 升級軟體:yum upgrade foo或者yum update foo 查詢資訊:yum info foo 搜尋軟體(以包含foo欄位為例):yum search foo 其它參數參見man yum
Yum命令詳解
總所周知,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@DukeTeam Dev進行改進,遂有此名。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相
關資訊,檢查依賴性並自動提示使用者解決。yum的關鍵之處是要有可靠的repository,顧名思義,這是軟體的倉庫,它可以是http或ftp網站,
也可以是本地軟體池,但必須包含rpm的header,
header包括了rpm包的各種資訊,包括描述,功能,提供的檔案,依賴性等.正是收集了這些 header並加以分析,才能自動化地完成餘下的任務。
1.yum的一切配置資訊都儲存在一個叫yum.conf的設定檔中,通常位於/etc目 錄下,這是整個yum系統的重中之重,我在的F7中查看了這一檔案,大家一起來看下:
[hanlong@wh_eric 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校正,如果沒有這一項,預設好像也是檢查的。
2.好了,接下來就是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軟體升級的一些命令羅列一下:
(更新:我在安裝wine的時候是用rpm一個一個安裝的,先安裝以來關係,然後在安裝wine的主包,但是剛剛在論壇上發現來一個好的文章,就yum的本地安裝。參數是-localinstall
$yum localinstall wine-*
這樣的話,yum會自動安裝所有的依賴關係,而不用rpm一個一個的安裝了,省了好多工作。
還有一個與他類似的參數:
$yum localupdate wine-*
如果有wine的新版本,而且你也下載到來本地,就可以這樣本地更新wine了。)
1.列出所有可更新的軟體清單
命令:yum check-update
2.安裝所有更新軟體
命令:yum update
3.僅安裝指定的軟體
命令:yum install
4.僅更新指定的軟體
命令:yum update
5.列出所有可安裝的軟體清單
命令:yum list
3.使用yum安裝和卸載軟體,有個前提是yum安裝的軟體包都是rpm格式的。
安裝的命令是,yum install xxx,yum會查詢資料庫,有無這一軟體包,如果有,則檢查其依賴衝突關係,如果沒有依賴衝突,那麼最好,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除衝突的包,你可以自己作出判斷
刪除的命令是,yum remove xxx,同安裝一樣,yum也會查詢資料庫,給出解決依賴關係的提示。
1.用YUM安裝軟體包
命令:yum install
2.用YUM刪除軟體包
命令:yum remove
4.用yum查詢想安裝的軟體
我們常會碰到這樣的情況,想要安裝一個軟體,只知道它和某方面有關,但又不能確切知道它的名字。這時yum的查詢功能就起作用了。你可以用 yum
search keyword這樣的命令來進行搜尋,比如我們要則安裝一個Instant Messenger,但又不知到底有哪些,這時不妨用
yum search
messenger這樣的指令進行搜尋,yum會搜尋所有可用rpm的描述,列出所有描述中和messeger有關的rpm包,於是我們可能得到
gaim,kopete等等,並從中選擇。
有時我們還會碰到安裝了一個包,但又不知道其用途,我們可以用yum info packagename這個指令來擷取資訊。
1.使用YUM尋找軟體包
命令:yum search
2.列出所有可安裝的軟體包
命令:yum list
3.列出所有可更新的軟體包
命令:yum list updates
4.列出所有已安裝的軟體包
命令:yum list installed
5.列出所有已安裝但不在 Yum Repository 內的軟體包
命令:yum list extras
6.列出所指定的軟體包
命令:yum list
7.使用YUM擷取軟體包資訊
命令:yum info
8.列出所有軟體包的資訊
命令:yum info
9.列出所有可更新的軟體包資訊
命令:yum info updates
10.列出所有已安裝的軟體包資訊
命令:yum info installed
11.列出所有已安裝但不在 Yum Repository 內的軟體包資訊
命令:yum info extras
12.列出軟體包提供哪些檔案
命令:yum provides
5.清除YUM緩衝
yum 會把下載的軟體包和header儲存在cache中,而不會自動刪除。如果我們覺得它們佔用了磁碟空間,可以使用yum
clean指令進行清除,更精確的用法是yum clean headers清除header,yum clean
packages清除下載的rpm包,yum clean all 清除所有
1.清除緩衝目錄(/var/cache/yum)下的軟體包
命令:yum clean packages
2.清除緩衝目錄(/var/cache/yum)下的 headers
命令:yum clean headers
3.清除緩衝目錄(/var/cache/yum)下舊的 headers
命令:yum clean oldheaders
4.清除緩衝目錄(/var/cache/yum)下的軟體包及舊的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
以上所有命令參數的使用都可以用man來查看:
[hanlong@wh_eric F7常用文檔]$ man yum
FROM:http://han-long.cn/blog/archives/45
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
注:同時會提示刪除licq-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