YUM
yum的前身是yup(yellow dog updater, yellow dog linux 的軟件更新器),藉助yum軟件倉庫,可以完成安裝、卸載、自動升級等任務,能夠自動查找並解決人品嗎包之間的依賴關係而無需管理員手動配置。
要成功的使用yum機制來更新系統軟件,需要有一個包含有各種rpm安裝包文件的軟件倉庫,提供軟件服務器成爲“源”服務器。
yum軟件倉庫通常藉助於HTTP或FTP協議來進行發佈,這樣可以面向網絡中的所有客戶端提供軟件源服務。
下面我們通過拓撲實驗來了解yum服務的運作原理:
在本地創建一個存放YUM源的目錄,如mkdir /yum
將RHEL6光盤中的所有內容拷貝到/yum中
#mount /dev/cdrom /media
#cp -rf /media/* /yum
在/etc/yum.repos.d目錄下創建一個以.repo結尾的文件:
配置內容參照光盤源的YUM,此處略過
清理YUM緩存
yum clean all
驗證本地YUM安裝包
B):網絡YUM(通過FTP或HTTP協議方式實現網絡YUM安裝RPM包)
在Linux主機中使用YUM客戶端工具在線升級、安裝軟件時,由於受到網絡連接速度、網絡帶寬的限制,往往給用戶安裝帶來不必要的麻煩。但是如果在局域網中構建一個基於本地的YUM源服務器,則可以大大解決用戶安裝軟件速度較慢的問題
通過FTP方式:(方式1:硬盤源)
實現步驟:
YUM服務器端配置:
將RHEL6光盤中的所有內容複製到本地硬盤相關目錄下,如/var/ftp/rhel6
推薦步驟:
安裝vsftpd服務軟件包
#mkdir /var/ftp/rhel6
#mount /dev/cdrom /media
#cp /media/* /var/ftp/rhel6
啓動vsftpd服務:
service vsftpd start
chkconfig vsftpd on
在另一臺客戶端測試,首先創建repo文件指定YUM源位置
vi /etc/yum.repos.d/server.repo,注意文件的擴展名要以repo結尾,文件內容如下
[Server]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
驗證:在客戶端上安裝RPM包,如samba
若YUM服務器開啓了selinux功能,客戶端通過YUM安裝會失敗
解決方法1:關閉selinux功能setenforce 0
方法2:setsebool allow_ftpd_full_access on
若YUM服務器開啓了防火牆,客戶端通過YUM安裝會失敗
解決方法1:關閉iptables
方法2:在INPUT規則鏈上創建允許FTP訪問的規則。
通過FTP方式:(方式2:光盤源)
YUM服務器端配置:(IP:192.168.0.2)
先將RHEL6系統光盤掛載到/var/ftp/pub目錄下
確保vsftpd服務啓動
YUM客戶端配置:(IP:192.168.0.1)
在/etc/yum.repos/目錄下創建一個以.repo爲後綴的文件,內容如下:
[Server]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
在客戶端上測試
2、通過HTTPD方式:與ftp方式類似
(略)
對於用戶蒐集的非RHEL6光盤的更多其他軟件包(必須包括存在依賴關係的所有安裝文件)除了應準備相應的目錄以外,還需要手動創建repodata數據文件,這就要用到createrepo工具(RHEL6光盤中有)
以RHEL6安裝光盤中Packages/目錄的RPM包爲例:
安裝createrepo工具:
createrepoa主要用於收集目錄中的rpm包文件的頭信息,以創建repodata軟件倉庫數據(經gzip壓縮的xml文件)。
mount /dev/cdrom /mnt //掛載光盤
rpm –ivh /mnt/Packages/createrepo-0.9.8-4.el6.noarch.rpm
注意:安裝createrepo包時要依賴以下兩個包:deltarpm和python-deltarpm,不能忽略這兩個包
安裝FTP服務器:
rpm -ivh /mnt/Packages/vsftpd-2……..(按TAB鍵自動補齊)
配置軟件倉庫目錄:
可參考安裝光盤的Server目錄
mkdir /var/ftp/pub/Packages
mkdir /var/ftp/pub/repodata
從光盤把所有的RPM包複製到/var/ftp/pub/Packages目錄下(要確保硬盤有足夠的磁盤空間)
cp - a /mnt/Packages/* /var/ftp/pub/Packages/
創建軟件倉庫信息文件:
cd /var/ftp/pub/
createrepo --database ./
[root@server pub]# ls repodata/
filelists.sqlite.bz2 other.sqlite.bz2 primary.sqlite.bz2 repomd.xml
filelists.xml.gz other.xml.gz primary.xml.gz
可以看到已經創建好了相應的軟件倉庫信息文件
在客戶端上創建擴展名爲.repo的文件,內容參考上面的有產設置。