yum(yellow dog updater modified)爲多個Linux發行版的軟件包管理工具,Redhat RHEL CentOS Fedora YUM主要用於自動安裝,升級rpm軟件包,它可以自動查找解決rpm包之間的依賴關係。
YUM自動下載rpm包並安裝,類某軟件的一鍵安裝。php
YUM源是什麼?
要成功的使用YUM工具安裝更新軟件或系統,就須要有給一個包含各類rpm軟件包的repository(軟件倉庫)這個軟件倉庫咱們習慣成爲yum源。網絡上有大量的yum源,可是因爲受到網絡環境的限制,致使軟件安裝耗時過長甚至失敗。特別是當有大量服務器大量軟件包須要更新安裝時,所以優化系統時候咱們都更換國內的源。相比較而言,本地yum源服務器最大的優勢是局域網的快速網絡鏈接和穩定性。有了局域網中的YUM源服務器,即使在internet中斷的狀況下,也不會影響其餘YUM客戶端的軟件安裝和升級。python
YUM源工做原理nginx
1.yum -y install httpd 2.查找yum配置文件CentOS-Base.repo這個裏面有下載地址 3.CentOS系統默認到國外的軟件倉庫下載rpm軟件包 4.但國外的源比較慢所以系統優化時換成阿里雲的源 5.可是仍是以爲阿里雲的源不快,所以搭建內網的yum源,公網的和本身作的rpm均可以放進去
說明:更換yum源實質就是更換下載地址web
安裝createrepo軟件yum -y install createrepo
echo '192.168.1.100 mirrors.liuliya.com' >>/etc/host #提早驗證內網YUM源
建立yum倉庫的目錄數據庫
mkdir -p /application/yum/centos6/x86_64/ cd /application/yum/centos6/x86_64/
rz #上傳包到此目錄,此目錄下還能夠包括文件夾
獲取rpm軟件包的方法apache
1.本身製做的rpm包 2. yumdownloader pcre-devel openssl-devel #只下載不安裝 3.平時yum安裝軟件時不刪除安裝包
#cat /etc/yum.conf
keepalived=1
#安裝包存儲目錄cachedir=/var/cache/yum/$basearch/$releasever
#/var/cache/yum/x86_64/base/packages
初始化repodata索引文件
#初始化createrepo -pdo /application/yum/centos6/x86_64/ /application/yum/centos6/x86_64/
#每加入一個rpm包就要更新一下createrepo --update /application/yum/centos6/x86_64/
提供yum服務
#能夠用apache或者nginx提供web服務,但用Python的http模塊更簡單,適用於內網環境
注意:先把Nginx關閉防止80端口衝突vim
cd /application/yum/centos6/x86_64/ python -m SimpleHTTPServer 80 &>/dev/null &
能夠經過遊覽器輸入本機IP查看
客戶端的配置centos
cd /etc/yum.repos.d mkdir yum_bak && mv *repo yum_bak vim liuliya.repo [liuliya] name=server baseurl=http://192.168.1.100 enable=1 gpgcheck=0
yum clean all #清空本機已有yum緩存
yum list #列表顯示yum倉庫
小技巧:
上面展現的須要新建一個文件,也許工做中有更多的配置,若是手動配置比較麻煩,所以有一種更簡單的方法,將這些操做作成rpm包fpm -s dir -t rpm -n liuliya_repo -v 1.0 --post-install /server/scripts/liuliya_rpm.sh -f /etc/yum.repos.d/liuliya.repo
liuliya_rpm.sh腳本主要是剛纔咱們的一些操做。緩存
接前面文章定製的nginx rpm包yum install nginx
安裝完成後咱們來驗證下:cd /application/
ll -h
顯示nign -> /application/nginx-1.6.3/
nginx-1.6.3
#查看下id nginxid nginx
uid=500(nginx) gid=500(nginx) group=500(nginx)
說明本地yum安裝nginx成功
#卸載軟件使用rpm -e 軟件名
yum配置文件簡介說明及命令介紹cat /etc/yum.conf
安全
[main] cachedir=/var/cache/yum/$basearch/$releasever #yum緩存的目錄,存儲下載的rpm包和數據庫 keepcache=0 #安裝完成後是否保留軟件包,0爲不保留(默認爲0)1爲 保留 debuglevel=2 #Debug信息輸出等級,範圍爲0-10缺省爲2 logfile=/var/log/yum.log #日誌文件位置 exactarch=1 #有1和0兩個選項,設置爲1則yum只會安裝和系統架構匹配的軟件包 obsoletes=1 #update的參數至關於upgrade容許更新陳舊的RPM包;有2個選項1和0分別表示首是否進行gpg校驗以肯定每一個rpm的來源是有效和安全的。這個選項若是設置在[main]部分則對每一個repository都有效,默認爲0 gpgcheck=1 plugins=1 #是否啓動插件,默認1爲容許,0表示不容許 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release #指定一個軟件包,yum會根據這個包判斷髮行版本
yum命令用法
#安裝軟件包yum install httpd
yum -y install httpd
#列出軟件包,使用list函數,能夠搜索帶名稱的指定軟件包yun list httpd
#搜索軟件包yum search http
#查找某個特定文件屬於哪一個軟件包yum provides /etc/my.cnf
#列出全部可用的羣組yum grouplist
#安裝羣組軟件包yum groupinstall 'MySQL Database'
#列出啓動的軟件庫yum repolist
#安裝來自特定軟件的軟件包yum --enablerepo=local --disablerepo=base,extras,updates install LNMP
#清理yum緩存內容yum clean all
#查看yum歷史記錄yum history
鏡像同步公網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,這些不用從新下載
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x_86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extra/x86_64/ /data/yum_data/centos/6/extra/x_86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/update/x86_64/ /data/yum_data/centos/6/update/x_86_64/
#epel源/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/centos/epel/6/x_86_64/
下載命令
有些鏡像源不支持Rsync協議,好比阿里雲、Zabbix官方源
解決辦法:wget -r -p -np -k http://repo.zabbix.com/non-supported/rhel/6/x86_64/