軟件的升級是對軟件功能的改進和安全性的升級,與windows系統類似,linux操作系統下也需要對軟件進行定期的更新升級,保持軟件始終處於最新狀態。Linux操作系統的升級可以分為自動升級和手動升級兩種方式:自動升級一般是在有授權的linux發行版或者免費linux發行版下進行的,只要輸入升級命令,系統會自動完成升級工作,無需人工干預。
yum是yellowdog updater modified 的縮寫,yellow dog(黃狗)也是一個 Linux 的 發行版本,只不過Redhat公司是將這種升級技術利用到自己的發行版上就形成了現在的 yum。 yum是進行linux自動升級常用的一個工具,通過yum工具配合互聯網即可實現自動升級系統。例如一台經過授權的Redhat Linux操作系統,或者一台Centos Linux系統,只要你的系統能連接互聯網,輸入yum update 即可實現系統的自動升級。通過yum進行系統升級實質是yum命令去下載指定的遠程互聯網 主機上的RPM軟件包,然後自動進行安裝,同時解決各個軟件之間的依賴關系。
手動升級是有針對性的進行某個系統軟件的升級,例如升級系統的ssh登錄工具、gcc編譯工具等等。手動升級其實就是通過RPM包工具實現軟件更新的,因此在升級軟件時可能會遇到軟件之間的依賴關系,升級相對比較麻煩。
下面具體講述在Centos Linux4.4下如何設置yum工具,進行系統自動升級。
1.yum的安裝與配置
(1)yum的安裝
檢查yum是否已經安裝:
[root@localhost ~]# rpm -qa|grep yum
如果沒有任何顯示,表示系統中還沒有安裝yum工具,yum安裝包在centos系統光盤中可以找到,執行如下指令進行安裝:
[root@localhost ~]# rpm -ivh yum-*.noarch.rpm
安裝yum需要python-elementtree、python-sqlite、urlgrabber、yumconf等軟件包的支持,這些軟件包在Centos Linux系統安裝光盤均可找到,如果在安裝yum過程中出現軟件包之間的依賴性,只需按照依賴提示尋找相應軟件包安裝即可,直到yum包安裝成功。
下面是某個環境的安裝示例:
[root@localhost ~]# rpm -ivh yum-2.4.3-1.c4.noarch.rpm
warning: yum-2.4.3-1.c4.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821
error: Failed dependencies:
python-elementtree is needed by yum-2.4.3-1.c4.noarch
python-sqlite is needed by yum-2.4.3-1.c4.noarch
urlgrabber is needed by yum-2.4.3-1.c4.noarch
yumconf is needed by yum-2.4.3-1.c4.noarch
[root@localhost ~]# rpm -ivh python-elementtree-1.2.6-4.2.1.i386.rpm
warning: python-elementtree-1.2.6-4.2.1.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:python-elementtree ########################################### [100%]
root@localhost ~]# rpm -ivh sqlite-3.3.3-1.2.i386.rpm
warning: sqlite-3.3.3-1.2.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:sqlite ########################################### [100%]
[root@localhost ~]# rpm -ivh python-sqlite-1.1.7-1.2.i386.rpm
warning: python-sqlite-1.1.7-1.2.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:python-sqlite ########################################### [100%]
[root@localhost ~]# rpm -ivh python-urlgrabber-2.9.8-2.noarch.rpm
warning: python-urlgrabber-2.9.8-2.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:python-urlgrabber ########################################### [100%]
root@localhost ~]# rpm -ivh centos-yumconf-4-4.5.noarch.rpm
warning: centos-yumconf-4-4.5.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:centos-yumconf ########################################### [100%]
[root@localhost ~]# rpm -ivh yum-2.4.3-1.c4.noarch.rpm
warning: yum-2.4.3-1.c4.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:yum ########################################### [100%]
(2)yum的配置
yum工具安裝完畢,接下來的工作是進行yum的配置,yum的配置文件有主配置文件/etc/yum.conf、資源庫配置目錄/etc/yum.repos.d,yum安裝後,默認的一些資源庫配置可能無法使用,因此需要進行 修改,下面是/etc/yum.repos.d/CentOS-Base.repo資源庫配置文件各項的詳細含義:
[root@localhost ~]#/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-4 - Base
#name 就是發行版的名稱,其格式表示“操作系統名和釋出版本”,“base”是表明此段尋找的是base包信息。
baseurl=http://mirror.centos.org/centos/4/os/$basearch/
#baseurl”表示yum在互聯網上查找升級文件的URL地址。其中“$basearch”代表了系統的硬件構架如“i386”、“x86-64等,同時,yum在資源更新時,會檢查baseurl/repodata/repomd.xml文件。 “repomd.xml”是一個索引文件,它的作用是提供了更新rpm包文件的下載信息和SHA校驗值。 “repomd.xml”包括了3個文件,分別為“other.xml.gz”、”filelists.xml.gz”和”primary.xml.gz”,表示的含義依次是“其它更新包列表”、“更新文件集中列表”和“主要更新包列表”。
gpgcheck=1
#gpgcheck表示是否啟用gpg檢查,1表示啟用,0表示不啟用校驗,如果啟用,就是需要在配置文件裡注明GPG-RPM-KEY的位置,可以看到下面gpgkey字段,指定了GPG-RPM-KEY驗證文件的位置。
#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
#本段指定的是尚未發布的軟件包部分(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
#本段指定的是擴展的額外軟件包部分(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的特點
安裝方便,自動解決增加或刪除rpm包時遇到的依賴 性問題。
可以同時配置多個資源庫(Repository)
配置文件簡單明了(/etc/yum.conf、/etc/yum.repos.d/CentOS-Base.repo)
保持與RPM數據庫的一致性
注意:yum會自動下載所有所需的升級資源包並默認放置在/var/cache/yum目錄下, 當第一次使用yum或yum資源庫更新 時,軟件升級所需的時間可能較長。
3.yum的日常用法
(1)通過yum安裝和刪除RPM包
安裝rpm包,如dhcp
[root@localhost ~]#yum install dhcp
刪除rpm包,包括與該包有依賴 性的包
[root@localhost ~]#yum remove licq
注意:同時會提示刪除licq-gnome,licq-qt,licq-text
(2)通過yum工具更新軟件包
檢查可更新的rpm包:
[root@localhost ~]#yum check-update
更新所有的rpm包:
[root@localhost ~]#yum update
更新指定的rpm包,如更新kernel和kernel source:
[root@localhost ~]#yum update kernel kernel-source
大規模的版本升級, 與yum update不同的是, 陳舊的淘汰的包也會升級:
[root@localhost ~]#yum upgrade
(3)通過yum查詢RPM包信息
列出資源庫中所有可以安裝或更新的rpm包的信息:
[root@localhost ~]#yum info
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包的信息:
[root@localhost ~]#yum info vsftpd
[root@localhost ~]#yum info perl*
注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以perl開頭的rpm包的信息。
列出資源庫中所有可以更新的rpm包的信息:
[root@localhost ~]#yum info updates
列出已經安裝的所有的rpm包的信息:
[root@localhost ~]#yum info installed
列出已經安裝的但是不包含在資源庫中的rpm包的信息:
[root@localhost ~]#yum info extras
注:也就是 通過其它網站下載安裝的rpm包的信息。
列出資源庫中所有可以更新的rpm包:
[root@localhost ~]#yum list updates
列出已經安裝的所有rpm包:
[root@localhost ~]#yum list installed
列出已經安裝的但不包含在資源庫中的rpm包:
[root@localhost ~]#yum list extras
注:也就是通過其它網站下載安裝的rpm包。
列出資源庫中所有可以安裝或更新的rpm包:
[root@localhost ~]#yum list
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包:
[root@localhost ~]#yum list sendmail
[root@localhost ~]#yum list gcc*
注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以gcc開頭的rpm包。
搜索匹配特定字符的rpm包的詳細信息:
[root@localhost ~]#yum search wget
注意:可以通過“search”在rpm包名, 包描述中進行搜索。
搜索包含特定文件名的rpm包:
[root@localhost ~]#yum provides realplay
(4)通過yum操作暫存信息(/var/cache/yum)
清除暫存的rpm包文件:
[root@localhost ~]#yum clean packages
清除暫存的rpm頭文件:
[root@localhost ~]#yum clean headers
清除暫存中舊的rpm頭文件:
[root@localhost ~]#yum clean oldheaders
清除暫存中舊的rpm頭文件和包文件:
[root@localhost ~]#yum clean 或
[root@localhost ~]#yum clean all
注意: 上面的兩條命令相當於yum clean packages + yum clean oldheaders。
4.Redhat Linux下用yum升級系統
yum也可以升級Redhat Linux系統,在Redhat Linux系統安裝盤中默認沒有yum的安裝包,由於Redhat Linux與Centos Linux基本一致,因此可以用同版本同內核的Centos Linux的yum包在Redhat Linux上進行安裝。安裝過程在上面章節已經講述,這裡不在多說。
由於使用的是Centos Linux的yum包在Redhat Linux下進行的安裝,因此在Redhat Linux下需要增加資源庫,定義yum的非官方庫文件,讓一些必需的軟件包通過yum也能夠安裝。
首先建立dag.repo,定義非官方庫:
[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
接著導入非官方庫的GPG:
[root@localhost ~]# rpm --import \
http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-centos4
注意:此步驟很重要,如果沒有導入授權的RPM-GPG-KEY,在使用yum升級安裝軟件時就會提示軟件不合法,結合上下文可以看出,在Centos下進行yum配置的時候,並沒有涉及到導入RPM-GPG-KEY,那是因為連接的資源庫為Centos官方的庫,而升級的系統也是Centos,當然無需授權,而這裡我們升級的系統是Redhat Linux,而用的資源文件是Centos的,所以必須導入Centos的RPM-GPG-KEY,系統才認為升級的包是合法的。
最後,就可以使用非官方定義的rpm包升級系統:
[root@localhost ~]#yum update
本文出自 “技術成就夢想” 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/530708