
YUM介紹
yum(yellow dog updater modified)為多個Linux發行版的軟件包管理工具,Redhat RHEL CentOS Fedora YUM主要用於自動安裝,升級rpm軟件包,它能夠自動查找解決rpm包之間的依賴關系。
YUM自動下載rpm包並安裝,類某軟件的一鍵安裝。
YUM源是什么?
要成功的使用YUM工具安裝更新軟件或系統,就需要有給一個包含各種rpm軟件包的repository(軟件倉庫)這個軟件倉庫我們習慣成為yum源。網絡上有大量的yum源,但是由於受到網絡環境的限制,導致軟件安裝耗時過長甚至失敗。特別是當有大量服務器大量軟件包需要更新安裝時,因此優化系統時候我們都更換國內的源。相比較而言,本地yum源服務器最大的優點是局域網的快速網絡連接和穩定性。有了局域網中的YUM源服務器,即便在internet中斷的情況下,也不會影響其他YUM客戶端的軟件安裝和升級。
YUM源工作原理
1.yum -y install httpd 2.查找yum配置文件CentOS-Base.repo這個里面有下載地址 3.CentOS系統默認到國外的軟件倉庫下載rpm軟件包 4.但國外的源比較慢因此系統優化時換成阿里雲的源 5.但是還是覺得阿里雲的源不快,因此搭建內網的yum源,公網的和自己做的rpm都可以放進去
說明:更換yum源實質就是更換下載地址
配置本地YUM倉庫
安裝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軟件包的方法
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端口沖突
cd /application/yum/centos6/x86_64/ python -m SimpleHTTPServer 80 &>/dev/null &
可以通過游覽器輸入本機IP查看
客戶端的配置
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腳本主要是剛才我們的一些操作。
yum 本地安裝nginx
接前面文章定制的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/