經過源碼編譯的方式安裝程序在靈活性、可定製性方面具備無可比擬的優點,但也給管理員帶來了額外的維護開銷,而且在大規模的服務器羣應用時存在必定的侷限性。而傳統的USB光驅、移動硬盤等安裝方式顯然已經力所難及。藉助於YUM軟件倉庫,能夠完成安裝、卸載、升級rpm軟件包等任務,可以自動查找並解決rpm包之間的依賴關係,使管理員在維護大量的Linux服務器時更加輕鬆自如。特別是在擁有大量Linux主機的本地網絡中,構建一臺源服務器能夠大大緩解軟件安裝、升級等對Internet的依賴html
部署YUM軟件倉庫sql
要成功使用YUM機制來更新系統和軟件,須要有一個包含各類rpm安裝包文件的軟件倉庫,提供軟件倉庫的服務器稱爲源服務器。在客戶機中只要正確指定軟件倉庫的地址等信息,就能夠經過對應的源服務器來安裝、更新軟件了vim
1. 準備網絡安裝源(服務器端)
緩存
YUM軟件倉庫一般藉助於HTTP或FTP協議進行發佈,這樣能夠面向網絡中全部的客戶機提供軟件源服務。爲了便於客戶機查詢軟件包、獲取依賴關係等信息,在軟件倉庫中須要提供倉庫數據(Repodata),其中收集了目錄下的全部rpm包的頭部信息bash
2. 配置軟件倉庫位置(客戶機端)服務器
在客戶機上須要制定至少一個可用的軟件倉庫,而後才能使用yum工具進行下載、安裝軟件包網絡
1、將本地文件夾配置爲YUM軟件倉庫tcp
這種方式配置的YUM倉庫僅限於在本機使用ide
[root@localhost ~]# mount /dev/cdrom /media/ //掛載系統光盤 mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# mkdir /home/localrpm //建立本地軟件倉庫目錄 [root@localhost ~]# cp -rf /media/* /home/localrpm //將系統光盤內數據複製到目錄下,包含repodata數據文件 [root@localhost ~]# vim /etc/yum.repos.d/local.repo //編寫yum配置文件 [local] //倉庫類別 name=rhel //描述、說明 baseurl=file:///home/localrpm //URL訪問路徑 enabled=1 //1表示啓用此倉庫,0表示不啓用;默認啓用,可省略 gpgcheck=0 //驗證軟件包的簽名,0表示不驗證;若無此要求,可省略
2、用FTP部署YUM軟件倉庫工具
(1)服務器端
在REHL系統的安裝光盤中,已經針對軟件目錄Packages創建好了repodata數據。對於用戶收集的非REHL系統光盤自帶的其餘軟件包,還須要使用createrepo工具手動建立repodata文件
[root@localhost ~]# mount /dev/cdrom /media/ //掛載系統光盤 mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# yum -y install vsftpd //使用本地yum安裝vsftpd服務 Installed: vsftpd.x86_64 0:2.2.2-11.el6_4.1 Complete! [root@localhost ~]# chkconfig vsftpd on //啓動vsftpd服務 [root@localhost ~]# service vsftpd start [root@localhost ~]# mkdir /var/ftp/rhel //建立系統軟件倉庫目錄 [root@localhost ~]# cp -rf /media/* /var/ftp/rhel/ //將系統光盤內數據複製到目錄下,包含repodata數據文件 [root@localhost ~]# mkdir /var/ftp/other //建立用戶收集的軟件倉庫目錄,須要使用createrepo工具手動建立repodata文件 [root@localhost ~]# yum -y install createrepo //使用本地yum安裝createrepo軟件包 [root@localhost ~]# createrepo --database /var/ftp/other/ //建立repodata文件 Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@localhost ~]# iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT //容許FTP流量訪問本服務器 [root@localhost ~]# modprobe ip_conntrack-ftp //須要手動加載FTP模塊
(2)客戶機端
yum工具使用的軟件倉庫信息存放在/etc/yum.repos.d目錄中下擴展名爲「.repo」的文件中
[root@localhost ~]# vim /etc/yum.repos.d/ysf.repo //編寫yum配置文件 [base] //倉庫類別 name=rhel //描述、說明 baseurl=ftp://192.168.1.1/rhel //URL訪問路徑 enabled=1 //1表示啓用此倉庫,0表示不啓用;默認啓用,可省略 gpgcheck=1 //驗證軟件包的簽名,0表示不驗證;若無此要求,可省略 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //驗證須要指定GPG公鑰文件的位置, [other] name=othet baseurl=ftp://192.168.1.1/other enabled=1 gpgcheck=0
3、用HTTP部署YUM軟件倉庫
(1)服務器端
[root@localhost ~]# mount /dev/cdrom /media/ //掛載系統光盤 mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# yum -y install httpd //使用本地yum安裝httpd服務 [root@localhost ~]# chkconfig httpd on //啓動httpd服務 [root@localhost ~]# service httpd start [root@localhost ~]# mkdir /var/www/html/rhel //建立系統軟件倉庫目錄 [root@localhost ~]# cp -rf /media/* /var/www/html/rhel/ //將系統光盤內數據複製到目錄下,包含repodata數據文件 [root@localhost ~]# mkdir /var/www/html/other //建立用戶收集的軟件倉庫目錄,須要使用createrepo工具手動建立repodata文件 [root@localhost ~]# yum -y install createrepo //使用本地yum安裝createrepo軟件包 [root@localhost ~]# createrepo --database /var/www/html/other/ //建立repodata文件 Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@localhost ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT //容許HTTP流量訪問本服務器
(2)客戶機端
[root@localhost ~]# vim /etc/yum.repos.d/ysf.repo [base] name=rhel baseurl=http://192.168.1.1/rhel enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [other] name=othet baseurl=http://192.168.1.1/other enabled=1 gpgcheck=0
使用yum工具管理軟件包
下面列出如下經常使用的yum命令
1. 查詢軟件包
(1)yum list——查詢軟件包列表
能夠得到系統中的軟件安裝狀況,也能夠得到軟件倉庫中可用的軟件包列表
[root@localhost ~]# yum list installed //列出系統已安裝的軟件包 [root@localhost ~]# yum list available //列出軟件倉庫中可用的軟件包(未安裝) [root@localhost ~]# yum list updates //列出能夠升級版本的軟件包 [root@localhost ~]# yum list yum\* //列出全部以yum開頭的軟件包 [root@localhost ~]# yum grouplist //列出YUM倉庫中的軟件分組信息
(2)yum info——查詢軟件包的描述信息
[root@localhost ~]# yum info httpd //查看軟件包httpd的信息 [root@localhost ~]# yum groupinfo desktop //列出軟件分組Desktop所包含的軟件包等信息
(3)yum search——查詢指定的軟件包
根據某個關鍵詞來查找相關的軟件包,默認根據軟件包名稱和描述信息進行搜索
[root@localhost ~]# yum search http //搜索軟件倉庫中的軟件包名稱或描述信息包含「http」的軟件包 [root@localhost ~]# yum search all http //搜索軟件倉庫中與「http」相關的軟件包
2. 清除yum緩存
yum會把下載的軟件包和header存儲在cache中,而不會自動刪除。若是咱們以爲它們佔用了磁盤空間,可使用yumclean指令進行清除,更精確的用法是yumclean headers清除header,yum cleanpackages清除下載的rpm包,yum cleanall 清除全部
[root@localhost ~]# yum clean all //清空/var/cache/yum目錄下的緩存數據
3. 安裝、升級、卸載軟件包
使用yum工具安裝、卸載軟件包,執行操做時自動檢查並解決軟件包之間的依賴關係,期間會提示用戶按Y鍵確認安裝,可在yum命令後加「-y」選項,指定確認
[root@localhost ~]# yum update //升級系統 [root@localhost ~]# yum install 軟件包 //安裝指定軟件包 [root@localhost ~]# yum update 軟件包 //升級指定軟件包 [root@localhost ~]# yum remove 軟件包 //卸載指定軟件包 [root@localhost ~]# yum deplist 軟件包 //查詢指定軟件包的依賴關係 [root@localhost ~]# yum localinstall 軟件包 //從磁盤安裝rpm包並使用yum解決依賴 [root@localhost ~]# yum groupinstall 軟件組 //安裝指定軟件組中的軟件包 [root@localhost ~]# yum groupupdate 軟件組 //更新指定軟件組中的軟件包 [root@localhost ~]# yum groupremove 軟件組 //卸載指定軟件組中的軟件包
4. yum高級管理應用技巧
技巧1:加快你的yum的速度.使用yum的擴展插件yum-fastestmirror,我的認爲這個插件很是有效,速度真的是明顯提升
[root@localhost ~]# yum -y install yum-fastestmirror //在CentOS上,名字叫yum-plugin-fastestmirror
技巧2:擴展你的rpm包好多包官方沒有,怎麼搞定他.要我本身編譯嗎?你能夠本身到http://dag.wieers.com/rpm這來找
技巧3:仍是有rpm包找不到怎麼辦,你能夠用高級查找http://rpm.pbone.net/,基本上能夠蒐集齊全
技巧4:軟件組安裝有時咱們安裝完系統,管理有一類軟件沒有安裝,好比用於開發的開發包,咱們能夠用軟件包來安裝。
[root@localhost ~]# yum -y groupinstall "Development Libraries" [root@localhost ~]# yum -y groupinstall "Development Tools" //安裝用於開發的軟件包 [root@localhost ~]# yum -y groupinstall "Chinese Support" //安裝用於中文支持的軟件包 [root@localhost ~]# yum deplist package1 //查看程序package1依賴關係
技巧4:關於其餘知識,能夠經過man命令查看
[root@localhost ~]# man yum yum -y install 軟件包(支持*) //自動選擇y,全自動 yum install 軟件包(支持*) //手動選擇y or n yum remove 軟件包(不支持*) rpm -ivh 軟件包(支持*) //安裝rpm包 rpm -e 軟件包(不支持*) //卸載rpm包 yum install kernel-headers kernel-devel //升級內核