歡迎您光臨本站 註冊首頁

談談Linux下Yum的使用

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

軟體的升級是對軟體功能的改進和安全性的升級,與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是否已經安裝:
[[email protected] ~]# rpm -qa|grep yum
如果沒有任何顯示,表示系統中還沒有安裝yum工具,yum安裝包在centos系統光碟中可以找到,執行如下指令進行安裝:
[[email protected] ~]# rpm -ivh yum-*.noarch.rpm
安裝yum需要python-elementtree、python-sqlite、urlgrabber、yumconf等軟體包的支持,這些軟體包在Centos Linux系統安裝光碟均可找到,如果在安裝yum過程中出現軟體包之間的依賴性,只需按照依賴提示尋找相應軟體包安裝即可,直到yum包安裝成功.


下面是某個環境的安裝示例:
[[email protected] ~]# 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
[[email protected] ~]# 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%]
[email protected] ~]# 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%]
[[email protected] ~]# 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%]
[[email protected] ~]# 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%]
[email protected] ~]# 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%]
[[email protected] ~]# 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資源庫配置文件各項的詳細含義:
[[email protected] ~]#/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
[[email protected] ~]#yum install dhcp
 刪除rpm包,包括與該包有依賴 性的包
[[email protected] ~]#yum remove licq
注意:同時會提示刪除licq-gnome,licq-qt,licq-text
(2)通過yum工具更新軟體包
 檢查可更新的rpm包:
[[email protected] ~]#yum check-update
 更新所有的rpm包:
[[email protected] ~]#yum update
 更新指定的rpm包,如更新kernel和kernel source:
[[email protected] ~]#yum update kernel kernel-source
 大規模的版本升級, 與yum update不同的是, 陳舊的淘汰的包也會升級:
[[email protected] ~]#yum upgrade
(3)通過yum查詢RPM包信息
 列出資源庫中所有可以安裝或更新的rpm包的信息:
[[email protected] ~]#yum info
 列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包的信息:
[[email protected] ~]#yum info vsftpd
[[email protected] ~]#yum info perl*
注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以perl開頭的rpm包的信息.
 列出資源庫中所有可以更新的rpm包的信息:
[[email protected] ~]#yum info updates
 列出已經安裝的所有的rpm包的信息:
[[email protected] ~]#yum info installed
 列出已經安裝的但是不包含在資源庫中的rpm包的信息:
[[email protected] ~]#yum info extras
註:也就是 通過其它網站下載安裝的rpm包的信息.
 列出資源庫中所有可以更新的rpm包:


[[email protected] ~]#yum list updates
 列出已經安裝的所有rpm包:
[[email protected] ~]#yum list installed
 列出已經安裝的但不包含在資源庫中的rpm包:
[[email protected] ~]#yum list extras
註:也就是通過其它網站下載安裝的rpm包.
 列出資源庫中所有可以安裝或更新的rpm包:
[[email protected] ~]#yum list
 列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包:
[[email protected] ~]#yum list sendmail
[[email protected] ~]#yum list gcc*
注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以gcc開頭的rpm包.
 搜索匹配特定字元的rpm包的詳細信息:
[[email protected] ~]#yum search wget
注意:可以通過“search”在rpm包名, 包描述中進行搜索.
 搜索包含特定文件名的rpm包:
[[email protected] ~]#yum provides realplay
(4)通過yum操作暫存信息(/var/cache/yum)
 清除暫存的rpm包文件:
[[email protected] ~]#yum clean packages
 清除暫存的rpm頭文件:
[[email protected] ~]#yum clean headers
 清除暫存中舊的rpm頭文件:
[[email protected] ~]#yum clean oldheaders
 清除暫存中舊的rpm頭文件和包文件:
[[email protected] ~]#yum clean 或
[[email protected] ~]#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,定義非官方庫:
[[email protected] ~]# 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:
[[email protected] ~]# 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包升級系統:
[[email protected] ~]#yum update

本文出自 「技術成就夢想」 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/530708


[火星人 ] 談談Linux下Yum的使用已經有468次圍觀

http://coctec.com/docs/linux/show-post-49008.html