一、 yum原理:
1)yum簡介:
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE、CentOS中的shell前端軟體包管理器。
2)yum的作用:
yum的宗旨是自動化地更新,安裝/移除rpm包,收集rpm包的相關資訊,檢查依賴性并自動提示使用者解決。
3)yum的特點:
1、yum能夠從指定的伺服器上自動下載下傳rpm包,并進行安裝;
2、yum能夠自動的處理軟體包之間的依賴性關系;
3、yum能夠一次性安裝所有被依賴的軟體包,無需繁瑣的一次次下載下傳、安裝;
4、配置簡單(/etc/yum.conf、/etc/yum.repo.d/youname.repo)
5、使用友善
4)yum配置的相關資訊:
yum的一切配置資訊都儲存在/etc/yum.conf的配置檔案中,此檔案是整個yum系統的重中之重,是以有必要詳細介紹。
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344753555IdwR.png"></a>
5)yum倉庫:
yum預設倉庫放在/etc/yum/repos.d目錄下;
凡是放在/etc/yum/repos.d目錄下的,以.repo為字尾的檔案系統都會識别為yum的倉庫檔案;
yum倉庫是yum的關鍵之處,yum需要有可靠的repository;
倉庫可以是http或ftp站點, 也可以是本地倉庫,但必須包含rpm的header,header包括了rpm包的各種資訊,包括描述,功能,提供的檔案,依賴性等;
正是收集了這些 header并加以分析,才能自動化地完成餘下的任務。
6)Yum相關配置指令:
(1)、rpm包的更新
* 檢查可更新的rpm包
#yum check-update
* 更新所有的rpm包
#yum update
* 更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
* 大規模的版本更新,與yum update不同的是,連舊的淘汰的包也更新
#yum upgrade
(2)、rpm包的安裝和删除
* 安裝rpm包,如xmms-mp3
#yum install xmms-mp3
* 删除rpm包,包括與該包有倚賴性的包
#yum remove licq
* 注:同時會提示删除licq-gnome,licq-qt,licq-text
(3)、yum暫存(/var/cache/yum/)的相關參數
* 清除暫存中rpm封包件
#yum clean packages
* 清除暫存中rpm頭檔案
#yum clearn headers
* 清除暫存中舊的rpm頭檔案
#yum clean oldheaders
* 清除暫存中舊的rpm頭檔案和封包件
#yum clearn 或#yum clearn all
* 注:相當于yum clean packages + yum clean oldheaders
(4)、包清單
* 列出資源庫中所有可以安裝或更新的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包
(5)、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包的資訊
(6)、搜尋rpm包
* 搜尋比對特定字元的rpm包
#yum search mozilla
* 注:在rpm包名,包描述等中搜尋
* 搜尋有包含特定檔案名的rpm包
#yum provides realplay
二、案例 - 1:
案例說明:
公司内有一個區域網路,主機使用linux作業系統,希望通過一台yum伺服器實作各種軟體包的安裝。
拓撲圖:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_13447536592Hp8.png"></a>
實驗要求:
在區域網路内架設一台ftp伺服器,在其中放置各種軟體包,隻需在客戶機上配置相應的yum倉庫,使得客戶機實作網路yum安裝;
解決在安裝外來rpm包時,所産生的軟體包依賴關系;
配置步驟:
1)伺服器端配置:
1、FTP伺服器的架設:
挂載CD光牒:
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
安裝vsfpt服務:
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm
warning: vsftpd-2.0.5-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@localhost Server]#
啟動vsftpd服務:
[root@localhost Server]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
2、将rpm包導入FTP伺服器中;
将CD光牒鏡像中的所有軟體包拷貝到ftp伺服器中;
[root@localhost ~]# cp -r /mnt/cdrom/. /var/ftp/pub/
You have mail in /var/spool/mail/root
[root@localhost ~]#
3、檢視檔案的完整性;
檢視各個軟體包倉庫的yum的校驗檔案是否缺失:
Server目錄的完整性:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_13447536736RNV.png"></a>
VT目錄的完整性:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344753743WAQp.png"></a>
Cluster目錄的完整性:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344753774CbWD.png"></a>
ClusterStorage目錄的完整性:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344753809VlGS.png"></a>
2)用戶端配置:
1、進入yum倉庫目錄檔案:
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
total 12
-rw-r--r-- 1 root root 254 Aug 4 2009 rhel-debuginfo.repo
[root@localhost yum.repos.d]#
2、建立一個yum倉庫:【toftp.repo】
[root@localhost yum.repos.d]# cp rhel-debuginfo.repo toftp.repo
total 16
-rw-r--r-- 1 root root 254 Aug 13 13:11 toftp.repo
[root@localhost yum.repos.d]#
3、編輯toftp.repo倉庫:
[root@localhost yum.repos.d]# vim toftp.repo
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344753837QT84.png"></a>
4、列出倉庫,驗證yum倉庫是否可用:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344753862yHNn.png"></a>
第一次使用yum時,yum會自動下載下傳所有所需的headers放置于/var/cache/yum目錄下,來作為yum暫存。
驗證測試:
驗證安裝dovecot服務:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_13447538798Cpr.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754086RbQj.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754118eOLG.png"></a>
案例擴充:
如何解決在安裝外來rpm包時,所産生的軟體包依賴關系?
使用httpd-2.2.3-31.el5.i386.rpm測試;
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754128G7Da.png"></a>
方法一:将外來軟體包添加到yum倉庫中; 步驟:
1、安裝createrepo軟體包:
[root@localhost ~]# cd /mnt/cdrom/Server
[root@localhost Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
1:createrepo ########################################### [100%]
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754193Uq5i.png"></a>
2、将外來的rpm包導入到/var/ftp/pub/Server目錄下:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_13447543311xl5.png"></a>
3、将所有軟體包的資訊重新寫入倉庫組檔案中,生成全新的倉庫的組檔案:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754347c7Hb.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754352Q8t3.png"></a>
4、清除原有的yum緩存:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754355Dlz1.png"></a>
5、重新列出所有軟體包,更新yum緩存:
<a href="http://cexpert.blog.51cto.com/attachment/201208/12/5251990_1344754359D9EB.png"></a>
方法二:使用yum的本地安裝,并且不進行公鑰校驗;
案例小結:
使用yum本地安裝時,不能進行證書檢測,使得不能夠确認軟體包的安全性;
案例 - 2:待定,敬請期待!!
本文轉自 cexpert 51CTO部落格,原文連結:http://blog.51cto.com/cexpert/961367