歡迎您光臨本站 註冊首頁

在RHEL5中Yum 應用

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

一、yum發展與作用

在linux系統維護中管理員經常遇到軟體包的依賴問題,有時無法解決,比如你在安裝庫文件時常出現報錯問題,說依賴其它軟體包.由於這個問題一直困繞linux的廣大愛好者,開源社區的軟體愛好者開始開發一些工具來解決這個問題;比如Yellow Dog的YUM(Yellow dog Update,Modified),Debian的APT(Advanced Packaging tool)等,開發這些工具都是為了解決rpm包的依賴關係.而yum起初是由yellow dog發行版的開發者Terra soft 研發,用python寫成,那時叫做yum(yellow dog updater),后經杜克大學的linux@Duke開團隊時行改進便得此名;yum的宗旨是自動化升級,安裝/移除rpm包,收集rpm包的相關信息,檢查依賴性並自動提示用戶解決,而其關鍵之處就是有可靠的repository(軟體的倉庫),可以是http、ftp、操作系統本機,但是必須包含rpm的(header),header包括了rpm包的信息,包括描述,功能,提供的文件,依賴等,正是收集了這些header並加以分析,才能自動化完成餘下的任務.

Yum具有如下功能:

1、自動解決包的依賴性問題,並能夠添加/刪除/更新RPM包

2、便於管理大量系統的更新問題

3、可以同時配置多個資源庫

4、簡潔的配置多個資源庫(Repository)

5、保持與RPM的數據的一致

6、有一個比較詳細的log,可以查看何時升級安裝了什麼軟體

二、yum倉庫:

倉庫(repository)是一個預備好的目錄,或是一個網站,包含了軟體包和索引文件,yum可以在倉庫中自動地定位並獲取正確的RPM軟體包,這樣就不必要手動搜索和安裝新應用程序和升級補丁了,只要用一個命令就可以更新系統 所有的軟體,也可以根據指定搜索目標來查找安裝新軟體

倉庫的分類:

如下是本地倉庫的配置:
1、 掛載rhel5DVD光碟到/media/cdrom/

2、 修改repo文件(必須在/etc/yum.repos.d/目錄下以repo結尾)

使文件修改成如下:

[RHEL5-Server]

name=RHEL5-Server

baseusrl=file:///media/cdrom/Server 默認rpm包安裝路徑

gpgcheck=1

enabled=1

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release

[RHEL5-VT]

name=RHEL5-VT

baseusrl=file:///media/cdrom/VT

gpgcheck=1

enabled=1

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release

[RHEL5-Cluster]

name=RHEL5-Server

baseusrl=file:///media/cdrom/Cluster

gpgcheck=1


enabled=1
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release

[RHEL5-ClusterStorage]

name=RHEL5-ClusterStorge]

baseusrl=file:///media/cdrom/ClusterStorage

gpgcheck=1

enabled=1

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release

配置文件內容簡介:

[]內的是倉庫的名稱

name 是倉庫的位置

baseurl 倉庫的位置

enabled 是否啟用這個倉庫,為1是起用,0為禁用

gpgcheck 是否檢查GPG簽名(用來驗證要安裝的包是不是redhat官方的)

GPGKEY是存放地址我們需要用下面的命令來導入到這個簽名,才能使用此功能

---------------------------------------------------------------------------------------------

下面我們將光碟中的文件拷貝到系統中來進行yum倉庫的配置

這時需要重新配置repository.

[root@localhost ~]# cd /var/ftp/rhel5/Server/

[root@localhost Server]#

[root@localhost Server]# createrepo -g repodata/comps-rhel5-cluster.xml ./

[root@localhost Server]# cd ../ClusterStorage/

[root@localhost ClusterStorage]# createrepo -g repodata/comps-rhel5-cluster-st.xml ./

[root@localhost VT]# createrepo -g repodata/comps-rhel5-vt.xml ./

[root@localhost VT]# rm -rf ../*/.olddata

三、相關的軟體:
createrepo-0.4.4-2.fc6

yum-3.0.2-5.el5

四、yum的相關配置文件與講解:

YUM的配置文件

YUM的一切配置信息都儲存在一個叫YUM.conf的配置文件中,通常位於/etc目 錄下,這是整個YUM系統的重中之重,有必要詳細介紹.下面是一個從網上找來的YUM.con文件,讓我們以此為例,進行說明.
1. [main]

2. cachedir=/var/cache/YUM

3. debuglevel=2

4. logfile=/var/log/YUM.log

5. pkgpolicy=newest

6. distroverpkg=redhat-release

7. tolerant=1

8. exactarch=1

9. retries=1

[main]

cachedir:YUM緩存的目錄,YUM在此存儲下載的rpm包和資料庫,一般是/var/cache/YUM.

debuglevel:除錯級別,0-10,默認是2.

logfile:YUM的日誌文件,默認是/var/log/YUM.log.

pkgpolicy:包的策略.一共有兩個選項,newest和last,這個作用是如果你設置了多個repository,而同一軟體在不同的 repository中同時存在,YUM應該安裝哪一個,如果是newest,則YUM會安裝最新的那個版本.如果是last,則YUM會將伺服器id以字母表排序,並選擇的那個伺服器上的軟體安裝.一般都是選newest.

distroverpkg:指定一個軟體包,YUM會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm包.

exactarch,有兩個選項1和0,代表是否只升級和你安裝軟體包cpu體系一致的包,如果設為1,則如你安裝了一個i386的rpm,則YUM不會用1686的包來升級.

retries 網路連接發生錯誤后的重試次數,如果設為0,則會無限重試.

tolerent,也有1和0兩個選項,表示YUM是否容忍命令行發生與軟體包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則YUM不會出現錯誤信息.默認是0.

除了上述之外,還有一些可以添加的選項,如

exclude=,排除某些軟體在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對於安裝了諸如美化包,中文補丁的朋友特別有用.

gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,默認好像也是檢查的.

另外,在/etc/yum.repo.d目錄下,存放的是yum的伺服器配置,所有伺服器設置都應該遵循如下格式:

1. [serverid]

2. name=Some name for this server

3. baseurl=url://path/to/repository/

serverid是用於區別各個不同的repository,必須有一個獨一無二的名稱.

name是對repository的描述,支持像$releasever $basearch這樣的變數;

baseurl是伺服器設置中最重要的部分,只有設置正確,才能從上面獲取軟體.它的格式是:

1. baseurl=url://server1/path/to/repository/

2. url://server2/path/to/repository/

3. url://server3/path/to/repository/

其中url支持的協議有 http:// ftp:// file://三種.baseurl后可以跟多個url,你可以自己改為速度比較快的鏡像站,但baseurl只能有一個.

導入GPG KEY:


導入每個reposity的GPG key,前面說過,YUM可以使用gpg對包進行校驗,確保下載包的完整性,我們先要到各個repository站點找到gpg key,一般都會放在首頁醒目位置,一些名字諸如 RPM-GPG-KEY.txt之類的純文本文件,把它們下載,然後用rpm --import xxx.txt命令將它們導入,最好把發行版自帶GPG-KEY也導入.rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方軟體升級用的上.

常見的幾個變數:

$releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷.

$arch,cpu體系,如i686,athlon等

$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha.

五、yum案例講解:

一,準備工作

1,啟動REDHAT Linux ,並放入安裝光碟

2,掛載光碟機 mount /dev/cdrom /mnt

3,安裝FTP服務.如果你只是自己本機使用YUM源可以省略掉這一步

cd /mnt/Server

rpm -ivh vsftpd*

chkconfig vsftpd on

service vsftpd start

4,安裝createrepo軟體包
rpm –ivh createrepo*

5,拷貝系統盤中的文件本系統中

cp -R /mnt/Server /var/ftp/pub

二,搭建YUM

1, 生成依賴性關係

createrepo -g /var/ftp/pub/Server/repodata/comps-rhel5-server-core.xml /var/ftp/pub/Server/

這個地方要注意,comps-rhel5-server-core.xml一定不能手動生成,默認安裝光碟上已經有了

2, 做完上面的步驟後會有一個錯誤提示,「Could not remove old metadata dir: .olddata「說目錄有問題.不用管他,把那個目錄刪除掉

rm –rf /var/ftp/pub/Server/.olddata

3, 把步驟1再做一遍

createrepo -g /var/ftp/pub/Server/repodata/comps-rhel5-server-core.xml /var/ftp/pub/Server/

4,cd /etc/yum.repos.d

vim yum.repo (新建一個倉庫文件,名字可以隨便起,在文件中寫如下內容)

[base]

name=base

baseurl=ftp://192.168.0.6/pub/Server #192.168.0.6是你的YUM源地址

enabled=1 #是否開啟源

gpgcheck=1 #是否驗證,可不要

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #驗證的密鑰,可不要


[火星人 ] 在RHEL5中Yum 應用已經有473次圍觀

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