軟件的升級(jí)是對(duì)軟件功能的改進(jìn)和安全性的升級(jí),與windows系統(tǒng)類似,linux操作系統(tǒng)下也需要對(duì)軟件進(jìn)行定期的更新升級(jí),保持軟件始終處于最新狀態(tài)。Linux操作系統(tǒng)的升級(jí)可以分為自動(dòng)升級(jí)和手動(dòng)升級(jí)兩種方式:
自動(dòng)升級(jí)一般是在有授權(quán)的linux發(fā)行版或者免費(fèi)linux發(fā)行版下進(jìn)行的,只要輸入升級(jí)命令,系統(tǒng)會(huì)自動(dòng)完成升級(jí)工作,無(wú)需人工干預(yù)。yum是yellowdog updater modified 的縮寫,yellow dog(黃狗)也是一個(gè) Linux 的 發(fā)行版本,只不過(guò)Redhat公司是將這種升級(jí)技術(shù)利用到自己的發(fā)行版上就形成了現(xiàn)在的 yum。 yum是進(jìn)行l(wèi)inux自動(dòng)升級(jí)常用的一個(gè)工具,通過(guò)yum工具配合互聯(lián)網(wǎng)即可實(shí)現(xiàn)自動(dòng)升級(jí)系統(tǒng)。例如一臺(tái)經(jīng)過(guò)授權(quán)的Redhat Linux操作系統(tǒng),或者一臺(tái)Centos Linux系統(tǒng),只要你的系統(tǒng)能連接互聯(lián)網(wǎng),輸入yum update 即可實(shí)現(xiàn)系統(tǒng)的自動(dòng)升級(jí)。通過(guò)yum進(jìn)行系統(tǒng)升級(jí)實(shí)質(zhì)是yum命令去下載指定的遠(yuǎn)程互聯(lián)網(wǎng) 主機(jī)上的RPM軟件包,然后自動(dòng)進(jìn)行安裝,同時(shí)解決各個(gè)軟件之間的依賴關(guān)系。
手動(dòng)升級(jí)是有針對(duì)性的進(jìn)行某個(gè)系統(tǒng)軟件的升級(jí),例如升級(jí)系統(tǒng)的ssh登錄工具、gcc編譯工具等等。手動(dòng)升級(jí)其實(shí)就是通過(guò)RPM包工具實(shí)現(xiàn)軟件更新的,因此在升級(jí)軟件時(shí)可能會(huì)遇到軟件之間的依賴關(guān)系,升級(jí)相對(duì)比較麻煩。
下面具體講述在Centos Linux4.4下如何設(shè)置yum工具,進(jìn)行系統(tǒng)自動(dòng)升級(jí)。
1.yum的安裝與配置
(1)yum的安裝
檢查yum是否已經(jīng)安裝:
[root@localhost ~]# rpm -qa|grep yum
如果沒有任何顯示,表示系統(tǒng)中還沒有安裝yum工具,yum安裝包在centos系統(tǒng)光盤中可以找到,執(zhí)行如下指令進(jìn)行安裝:
[root@localhost ~]# rpm -ivh yum-*.noarch.rpm
安裝yum需要python-elementtree、python-sqlite、urlgrabber、yumconf等軟件包的支持,這些軟件包在Centos Linux系統(tǒng)安裝光盤均可找到,如果在安裝yum過(guò)程中出現(xiàn)軟件包之間的依賴性,只需按照依賴提示尋找相應(yīng)軟件包安裝即可,直到y(tǒng)um包安裝成功。
(2)yum的配置
yum工具安裝完畢,接下來(lái)的工作是進(jìn)行yum的配置,yum的配置文件有主配置文件/etc/yum.conf、資源庫(kù)配置目錄/etc/yum.repos.d,yum安裝后,默認(rèn)的一些資源庫(kù)配置可能無(wú)法使用,因此需要進(jìn)行修改,下面是/etc/yum.repos.d/CentOS-Base.repo資源庫(kù)配置文件各項(xiàng)的詳細(xì)含義:
[root@localhost ~]#vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-4 - Base
#name 就是發(fā)行版的名稱,其格式表示“操作系統(tǒng)名和釋出版本”,“base”是表明此段尋找的是base包信息。
baseurl=http://mirror.centos.org/centos/4/os/$basearch/
#baseurl”表示yum在互聯(lián)網(wǎng)上查找升級(jí)文件的URL地址。其中“$basearch”代表了系統(tǒng)的硬件構(gòu)架如“i386”、“x86-64等,同時(shí),yum在資源更新時(shí),會(huì)檢查baseurl/repodata/repomd.xml文件。 “repomd.xml”是一個(gè)索引文件,它的作用是提供了更新rpm包文件的下載信息和SHA校驗(yàn)值。 “repomd.xml”包括了3個(gè)文件,分別為“other.xml.gz”、”filelists.xml.gz”和”primary.xml.gz”,表示的含義依次是“其它更新包列表”、“更新文件集中列表”和“主要更新包列表”。
gpgcheck=1
#gpgcheck表示是否啟用gpg檢查,1表示啟用,0表示不啟用校驗(yàn),如果啟用,就是需要在配置文件里注明GPG-RPM-KEY的位置,可以看到下面gpgkey字段,指定了GPG-RPM-KEY驗(yàn)證文件的位置。
#released updates
[update]
#本段是updates更新模塊要用到的部分配置。
name=CentOS-4 - Updates
baseurl=http://mirror.centos.org/centos/4/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#gpgkey指定GPG密鑰的地址
#packages used/produced in the build but not released
#本段指定的是尚未發(fā)布的軟件包部分(addons)配置
[addons]
name=CentOS-4 - Addons
baseurl=http://mirror.centos.org/centos/4/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#additional packages that may be useful
#本段指定的是有用的額外軟件包部分(extras)配置
[extras]
name=CentOS-4 - Extras
baseurl=http://mirror.centos.org/centos/4/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#additional packages that extend functionality of existing packages
#本段指定的是擴(kuò)展的額外軟件包部分(centosplus)配置
[centosplus]
name=CentOS-4 - Plus
baseurl=http://mirror.centos.org/centos/4/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#contrib - packages by Centos Users
#這里是contrib部分
[contrib]
name=CentOS-4 - Contrib
baseurl=http://mirror.centos.org/centos/4/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
2.yum的特點(diǎn)
1) 安裝方便,自動(dòng)解決增加或刪除rpm包時(shí)遇到的依賴性問(wèn)題。
2)可以同時(shí)配置多個(gè)資源庫(kù)(Repository)
3) 配置文件簡(jiǎn)單明了(/etc/yum.conf、/etc/yum.repos.d/CentOS-Base.repo)
4)保持與RPM數(shù)據(jù)庫(kù)的一致性
注意:yum會(huì)自動(dòng)下載所有所需的升級(jí)資源包并默認(rèn)放置在/var/cache/yum目錄下, 當(dāng)?shù)谝淮问褂脃um或yum資源庫(kù)更新時(shí),軟件升級(jí)所需的時(shí)間可能較長(zhǎng)。
3.yum的日常用法
(1)通過(guò)yum安裝和刪除RPM包
安裝rpm包,如dhcp
[root@localhost ~]#yum install dhcp
刪除rpm包,包括與該包有依賴性的包
[root@localhost ~]#yum remove licq
注意:同時(shí)會(huì)提示刪除licq-gnome,licq-qt,licq-text
(2)通過(guò)yum工具更新軟件包
檢查可更新的rpm包:
[root@localhost ~]#yum check-update
更新所有的rpm包:
[root@localhost ~]#yum update
更新指定的rpm包,如更新kernel和kernel source:
[root@localhost ~]#yum update kernel kernel-source
大規(guī)模的版本升級(jí),與yum update不同的是,陳舊的淘汰的包也會(huì)升級(jí):
[root@localhost ~]#yum upgrade
(3)通過(guò)yum查詢RPM包信息
列出資源庫(kù)中所有可以安裝或更新的rpm包的信息:
[root@localhost ~]#yum info
列出資源庫(kù)中特定的可以安裝或更新以及已經(jīng)安裝的rpm包的信息:
[root@localhost ~]#yum info vsftpd
[root@localhost ~]#yum info perl*
注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以perl開頭的rpm包的信息。
列出資源庫(kù)中所有可以更新的rpm包的信息:
[root@localhost ~]#yum info updates
列出已經(jīng)安裝的所有的rpm包的信息:
[root@localhost ~]#yum info installed
列出已經(jīng)安裝的但是不包含在資源庫(kù)中的rpm包的信息:
[root@localhost ~]#yum info extras
注:也就是通過(guò)其它網(wǎng)站下載安裝的rpm包的信息。
列出資源庫(kù)中所有可以更新的rpm包:
[root@localhost ~]#yum list updates
列出已經(jīng)安裝的所有rpm包:
[root@localhost ~]#yum list installed
列出已經(jīng)安裝的但不包含在資源庫(kù)中的rpm包:
[root@localhost ~]#yum list extras
注:也就是通過(guò)其它網(wǎng)站下載安裝的rpm包。
列出資源庫(kù)中所有可以安裝或更新的rpm包:
[root@localhost ~]#yum list
列出資源庫(kù)中特定的可以安裝或更新以及已經(jīng)安裝的rpm包:
[root@localhost ~]#yum list sendmail
[root@localhost ~]#yum list gcc*
注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以gcc開頭的rpm包。
搜索匹配特定字符的rpm包的詳細(xì)信息:
[root@localhost ~]#yum search wget
注意:可以通過(guò)“search”在rpm包名,包描述中進(jìn)行搜索。
搜索包含特定文件名的rpm包:
[root@localhost ~]#yum provides realplay
(4)通過(guò)yum操作暫存信息(/var/cache/yum)
清除暫存的rpm包文件:
[root@localhost ~]#yum clean packages
清除暫存的rpm頭文件:
[root@localhost ~]#yum clean headers
清除暫存中舊的rpm頭文件和包文件:
[root@localhost ~]#yum clean all
4.Redhat Linux下用yum升級(jí)系統(tǒng)
yum也可以升級(jí)Redhat Linux系統(tǒng),在Redhat Linux系統(tǒng)安裝盤中默認(rèn)沒有yum的安裝包,由于Redhat Linux與Centos Linux基本一致,因此可以用同版本同內(nèi)核的Centos Linux的yum包在Redhat Linux上進(jìn)行安裝。安裝過(guò)程在上面章節(jié)已經(jīng)講述,這里不在多說(shuō)。
由于使用的是Centos Linux的yum包在Redhat Linux下進(jìn)行的安裝,因此在Redhat Linux下需要增加資源庫(kù),定義yum的非官方庫(kù)文件,讓一些必需的軟件包通過(guò)yum也能夠安裝。
首先建立dag.repo,定義非官方庫(kù):
[root@localhost ~]# vi /etc/yum.repos.d/dag.repo
[dag]
name=Dag RPM Repository for RHEL4
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/$basearch/dag/
enabled=1
gpgcheck=1
接著導(dǎo)入非官方庫(kù)的GPG:
[root@localhost ~]# rpm --import \
http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-centos4注意:此步驟很重要,如果沒有導(dǎo)入授權(quán)的RPM-GPG-KEY,在使用yum升級(jí)安裝軟件時(shí)就會(huì)提示軟件不合法,結(jié)合上下文可以看出,在Centos下進(jìn)行yum配置的時(shí)候,并沒有涉及到導(dǎo)入RPM-GPG-KEY,那是因?yàn)檫B接的資源庫(kù)為Centos官方的庫(kù),而升級(jí)的系統(tǒng)也是Centos,當(dāng)然無(wú)需授權(quán),而這里我們升級(jí)的系統(tǒng)是Redhat Linux,而用的資源文件是Centos的,所以必須導(dǎo)入Centos的RPM-GPG-KEY,系統(tǒng)才認(rèn)為升級(jí)的包是合法的。
最后,就可以使用非官方定義的rpm包升級(jí)系統(tǒng):
[root@localhost ~]#yum update