在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 ..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-gp