1. intruductionhtml
yum軟件安裝方式解決了RPM安裝軟件時的依賴關係問題,它能夠同時配置多個資源庫(Repository) ,使用簡潔的配置文件/etc/yum.conf。linux
yum 會自動下載所需的升級資源包並默認放在/var/cache/yum 緩存目錄中web
yum server:在yum server上存放了全部的RPM軟件包,而後經過命令分析每一個RPM文件的依賴性關係,將這些數據記錄成文件存放在服務器上(可經過本地目錄,HTTP,FTP,NFS等方式共享)。vim
yum client:配置好軟件源之後,當須要安裝某個軟件時,經過yum server上記錄的依賴性關係文件,從yum server自動所有下載依賴關係須要全部相關的軟件並安裝。緩存
YUM軟件倉庫bash
使用YUM軟件倉庫,能夠完成安裝、卸載、自動升級rpm軟件包等任務,可以自動查找並解決rpm包之間的依賴關係。特別是在擁有大量linux主機的本地網絡中,構建一臺源服務器能夠大大緩解軟件安裝、升級等對於internet的依賴。服務器
YUM倉庫能夠做爲本地源,也能夠藉助FTP,HTTP協議來發布,爲面向網絡的全部客戶機提供軟件源網絡
Yum server源tcp
YUM源有三大類ide
Base:至關於下載光盤裏的DVD1
Extra:至關於下載光盤裏的DVD2
Epel:Epel官方獲取的源
Yum源對應目錄裏一家有兩個重要的目錄Packages和repodata,其中Packages上存放的是yum安裝的rpm包。repodata中包含一些.xml的文件,它是yum索引文件,包含rpm包的信息,依賴關係等,yum的自動安裝依賴於此配置文件。repomd.xml #這個文件爲MD5校驗信息。
repodata 目錄下都有filelist ,primary ,other, 記錄軟件包文件列表。
那麼無論採用何種方式配置的YUM源,都會有Packages目錄和包含.xml文件的repodata目錄。不管搭建什麼樣的服務器(web,ftp,nfs,samba)只要共享的目錄對應的是可用yum源便可
2.基於web的YUM服務器配置
OS: RHEL6.5
hostname:www.h.com
yum install httpd
vim /etc/httpd/conf/httpd.conf
ServerName www.h.com:80
cat>>/etc/hosts
172.16.72.1 www.h.com h
<<EOF
cat >>/etc/sysconfig/iptables <<EOF
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
<<EOF
service httpd start
mkdir -p /var/www/html/yum_repos/RHEL7.1
cat>>/etc/fstab<<EOF
/home/yadelph/weiyun/百度雲同步盤/software/rhel-server-7.1-x86_64-dvd.iso /var/www/html/yum_repos/RHEL7.1 iso9660,udf loop,defaults 0
EOF
mount /var/www/html/yum_repos/RHEL7.1
YUM客戶端配置
cat>>/etc/hosts
172.16.72.1 www.h.com h
<<EOF
cat>>/etc/yum.repos.d/rhel7.1.repo<<EOF
[RHEL7.1]
name=RHEL7.1
baseurl=http://www.h.com/yum_repos/RHEL7.1
enabled=1
gpgcheck=0
priority=1
<<EOF
yum repolist 測試YUM服務器源配置成功
3.基於FTP的YUM服務器配置
OS: RHEL6.5
hostname:h.ade.com
yum -y install vsftpd
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
service iptables save
service vsftpd start
mkdir /var/ftp/pub/RHEL7.1
cat >>/etc/fstab<<EOF
/var/www/html/yum_repos/RHEL7.1 /var/ftp/pub/RHEL7.1 none rw,bind 0 0
<<EOF
mount /var/ftp/pub/RHEL7.1
YUM客戶端配置
cat>>/etc/hosts
172.16.72.1 h.ade.com h
<<EOF
cat>>/etc/yum.repos.d/rhel7.1ftp.repo<<EOF
[RHEL7.1ftp]
name=RHEL7.1 FTP
baseurl=ftp://h.ade.com/pub/RHEL7.1
enabled=1
gpgcheck=0
priority=1
<<EOF
yum repolist 測試成功
4.基於掛載光驅DVD或者ISO鏡像配置本地YUM源
mount -t iso9660 -o loop /home/yadelph/weiyun/百度雲同步盤/software/rhel-server-6.6-x86_64-dvd.iso /mnt/RHEL6.6
(/mnt/RHEL6.6 也能夠是包含DVD源的光驅的掛載點)
若是須要開機即掛載此ISO鏡像,能夠用以下方法實現
cat>>/etc/fstab<<EOF
/home/yadelph/weiyun/百度雲同步盤/software/rhel-server-6.6-x86_64-dvd.iso /mnt/RHEL6.6 iso9660,udf loop,defaults 0 0
<<EOF
cat /etc/yum.repos.d/RHEL6.6DVD.repo
[RHEL6.6DVD]
name = RHEL6.6 DVD
baseurl=file:///mnt/RHEL6.6
#failovermethod = priority
#gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-releas
enabled = 1
#mirrorlist = https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
gpgcheck = 1
yum repolist 測試
5.使用rpm包建立自定義的yum源
如今的系統ISO鏡像就是已經建立好的源,以前搭建的yum server源只是將ISO做爲yum源使用服務器共享出去。若是要使用本身特定的rpm 包建立yum源就要使用
以利用RHEL7.1中的bash包升級RHEL7.0系統中的bash爲例
mkdir /var/ftp/pub/Packages
cd /var/ftp/pub/RHEL7.1/Packages
cp bash-4.2.46-12.el7.x86_64.rpm /var/ftp/pub/Packages
cd /var/ftp/pub/Packages
createrepo .
[root@h Packages]# ll
total 1016
-r--r--r-- 1 root root 1033616 Mar 15 13:12 bash-4.2.46-12.el7.x86_64.rpm
drwxr-xr-x 2 root root 4096 Mar 15 13:13 repodata
YUM客戶端配置
[root@primary yum.repos.d]# cat rhel7.1.my.repo
[RHEL7.1my]
name=my packages from RHEL7.1
baseurl=ftp://h.ade.com/pub/Packages
enabled=1
gpgcheck=0
#priority=1
yum repolist 測試成功
[root@primary ~]# bash --version | head -1
GNU bash, version 4.2.45(1)-release (x86_64-redhat-linux-gnu)
yum update bash
[root@primary ~]# bash --version | head -1
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)