YUM主要用於自動安裝、升級rpm軟件包,它能自動查找並解決rpm包之間的依賴關係。要成功的使用YUM工具安裝更新軟件或系統,就須要有一個包含各類rpm軟件包的repository(軟件倉庫),這個軟件倉庫咱們習慣稱爲yum源。網絡上有大量的yum源,但因爲受到網絡環境的限制,致使軟件安裝耗時過長甚至失敗。特別是當有大量服務器大量軟件包須要安裝時,緩慢的進度條使人難以忍受。所以咱們在優化系統時,都會更換國內的源。html
相比較而言,本地YUM源服務器最大優勢是局域網的快速網絡鏈接和穩定性。有了局域網中的YUM源服務器,即使在Internet鏈接中斷的狀況下,也不會影響其餘YUM客戶端的軟件安裝和升級。python
一、準備一臺服務器作yum倉nginx
主機IP:10.0.0.71web
操做系統:centos 6.9_x_86_64apache
二、建立yum倉目錄vim
mkdir -p /yum/centos6.9/x86_64/ cd /yum/centos6.9/x86_64/
三、安裝createrepo軟件windows
yum -y install createrepo
四、初始化repodata索引文件centos
createrepo -pdo /yum/centos6.9/x86_64/ /yum/centos6.9/x86_64/
五、提供yum服務瀏覽器
可使用web服務軟件Apache或nginx提供web服務,但用Python的http模塊更簡答,使用於內網環境安全
cd /yum/centos6.9/x86_64 python -m SimpleHTTPServer 80 &>/dev/null &
查看方法:經過瀏覽器輸入yum倉服務器的IP(10.0.0.71)便可查看
五、添加新的rpm包
yumdownloader pcre-devel openssl-devel # 只下載軟件不安裝 createrepo --update /application/yum/centos6.6/x86_64/ # 每加入新的rpm包就要更新一下
注:收集rpm包
平時yum安裝軟件時不刪除安裝包
vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #安裝包存儲目錄
keepcache=1 #安裝不刪除,0爲刪除 1爲保存
debuglevel=2
logfile=/var/log/yum.log
一、安裝apache服務
yum install -y httpd /etc/init.d/http start #檢查服務器是否正常啓動 netstart -lntup | grep httpd
二、解析綁定域名
#centos系統操做 echo 「10.0.0.71 yum.zhang.com」 >>/etc/hosts #windows操做 在hosts文件中添加 10.0.0.71 yum.zhang.com
三、訪問網站
在瀏覽器中輸入:yum.zhang.com
四、修改apache配置文件提供yum倉下載服務
修改配置文件/etc/httpd/conf/httpd.conf,將默認的www目錄指向本地建立的yum倉庫目錄
#給apache受權
chown -R apache.apache /yum/
#修改配置文件制定yum倉目錄
sed -i.bak 's#DocumentRoot "/var/www/html"#DocumentRoot "/yum"#g;s#<Directory "/var/www/html">#<Directory "/yum">#g' /etc/httpd/conf/httpd.conf mv /etc/httpd/conf/conf.d/welcome.conf /tmp #刪除默認主頁 /etc/init.d/httpd restart
五、在瀏覽器輸入yum.zhang.com測試訪問
示例1:centos 6.x系統yum源配置
cd /etc/yum.repos.d/ vim localyum.repo [root@yum yum.repos.d]# vi localyum.repo [localyum] name=centos6 baseurl=http://yum.zhang.com/centos/6/os/x86_64/ enable=1 gpgcheck=0 [localepel] name=epel baseurl=http://yum.zhang.com/epel/6/x86_64/ enable=1 gpgcheck=0 [localextra] name=extra baseurl=http://yum.zhang.com/centos/6/extras/x86_64/ enable=1 gpgcheck=0
示例2:centos7系統yum源配置方法
[root@yum yum.repos.d]# vi localyum.repo [localyum] name=centos7 baseurl=http://yum.zhang.com/centos/7/os/x86_64/ enable=1 gpgcheck=0 [localepel] name=epel baseurl=http://yum.zhang.com/epel/7/x86_64/ enable=1 gpgcheck=0 [localextra] name=extra baseurl=http://yum.zhang.com/centos/7/extras/x86_64/ enable=1 gpgcheck=0
臨時使用自建的yun倉,服務器重啓後失效
yum --enablerepo=localyum --disablerepo=base,extras,updates,epel list
永久使用自建的yum倉,需修改配置文件
vim /etc/yum.repos.d/CentOS-Base.repo # 在每個啓動的源加上 # enabled=0 #改成1就啓用,沒有此參數也是啓用。 [base] ………… enabled=0 [updates] ………… enabled=0 [extras] ………… enabled=0
#其餘開啓的倉庫也是使用此辦法關閉
或使用下面方法,把/etc/yum.repos.d/下面的repo結尾文件,所有移到其餘目錄中去
mkdir /home/yum_backup cd /etc/yum.repos.d mv * /home/yum_backup
一、企業需求搭建yum倉,有如下幾個方面:
a、在企業實際使用中,若是全部的機器都使用yum安裝,會消耗大量的公網流量,增長成本;也能保證內網服務器安全。
b、在使用相關軟件如PHP、saltstack等,須要從國外的鏡像源下載,速度較慢,影響效率。
c、添加定製的rpm到自建yum倉,能更方便的使用
二、鏡像同步公網yum源
上游yum源必需要支持rsync協議,不然不能使用rsync進行同步。
http://mirrors.ustc.edu.cn/status/
CentOS官方標準源:rsync://mirrors.ustc.edu.cn/centos/
epel源:rsync://mirrors.ustc.edu.cn/epel/
同步命令:
# 使用rsync同步yum源,爲了節省帶寬、磁盤和下載時間,只同步了CentOS6的rpm包,這樣全部的rpm包只佔用了21G,所有同步須要300G左右。
# 同步base源,小技巧,咱們安裝系統的光盤鏡像含有部分rpm包,大概3G,這些就不用從新下載。
建立四個目錄,用於同步公網yum源
mkdir -p /yum/centos/6/os/x86_64/ mkdir -p /yum/centos/6/extras/x86_64/ mkdir -p /yum/centos/6/updates/x86_64/ mkdir -p /yum/epel/6/x86_64/
執行如下命令,同時複製執行(或寫入腳本),就會同步官網yum源到本地
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /yum/centos/6/os/x86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /yum/centos/6/extras/x86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /yum/centos/6/updates/x86_64/ /usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /yum/epel/6/x86_64/
查看同步完成後yum源的大小相關操做:
#查看同屬數據大小 du -sh /yum/ #查看目錄結構 LANG=en tree -L 2 /yum/
故障1:
Error: @ERROR: max connections (20) reached -- try again later rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6] 解決方法: yum源服務器超過最大鏈接數,等待一會再進行測試(多嘗試幾回,便可成功,上述同步的yum源默認連接數40多個)。
故障2:
Error: # rsync: getaddrinfo: mirrors.ustc.edu.cn 873: Name or service not known 解決方法: DNS沒法解析,更換一個DNS再進行測試 常使用的DNS: 114.114.114.114 114.114.115.115 223.5.5.5 223.6.6.6 112.124.47.27 114.215.126.16 8.8.8.8
zabbix源同步:
/usr/bin/rsync -av rsync:http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/ /yum/zabbix/3.0/rhel/6/x86_64/
PHP源同步:
/usr/bin/rsync -av http://repo.webtatic.com/yum/el6/x86_64/ /yum/el6/x86_64/