歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux下Yum的使用

軟件的升級是對軟件功能的改進和安全性的升級,與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

Copyright © Linux教程網 All Rights Reserved