經過源代碼編譯的方式安裝程序在靈活性、可定製性方面具備無可比擬的優點,但也正由於這種特性給管理員帶來了額外的維護開銷,當應用在大規模的服務器羣集時存在必定的侷限性。那麼就須要使用——YUM軟件倉庫。html
藉助於YUM軟件倉庫,能夠完成安裝、卸載、自動升級rpm軟件包等任務,可以自動查找並解決rpm包之間的依懶關係,而無須管理員逐個、手工地安裝每一個rpm包,使管理員在維護大量Linux服務器時更加輕鬆自如。特別是在擁有大量Linux主機的本地網絡中,構建一臺源服務器能夠大大緩解軟件安裝、升級等對Internet的依懶。vim
YUM倉庫簡單來講就是: 1.RPM包構建的軟件更新機制; 2.自動解決依賴關係; 3.軟件包由集中的YUM軟件倉庫提供。
要成功使用YUM機制來更新系統和軟件,須要有一個包含各類rpm安裝包文件及其依懶軟件的軟件倉庫,提供軟件倉庫的服務器也稱爲「源」服務器。centos
YUM軟件倉庫一般藉助於HTTP協議或FTP協議來進行發佈, 這樣能夠面向網絡中的全部客戶機提供軟件源服務。爲了便於客戶機查詢軟件包,獲取依懶關係等信息,在軟件倉庫中須要提供倉庫數據(repodate文件),其中收集了目錄下全部的rpm頭部信息。緩存
RPM軟件包的來源 1.CentOS發佈的RPM包集合; 2.第三方組織發佈的RPM包集合; 3.用戶自定義的RPM包集合。
在centos 7 系統的安裝光盤中,已針對軟件目錄Packages創建好了repodate數據。所以只需將整個光盤中的內容經過HTTP和FTP的方式進行發佈,就能夠做爲軟件倉庫。服務器
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm //經過rpm的方式安裝FTP服務 [root@localhost ~]# mkdir /var/ftp/centos7 [root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/ //建立一個目錄(自定義便可,必須在能夠匿名訪問FTP服務的目錄中) //而後將光盤下的全部東西都複製到該目錄下
對於用戶蒐集的非Centos 7 光盤中的軟件包。除了須要準備的相應的目錄以外還須要手工的建立repodate文件,這就須要用到createrepo工具。網絡
[root@localhost ~]# mkdir /var/ftp/other [root@localhost ~]# cd /var/ftp/other/ //進入到存放rpm包的目錄中 [root@localhost other]# createrepo . //使用createrepo工具進行建立repodate文件, //並制定數據文件存放位置是當前目錄
[root@localhost ~]# systemctl start vsftpd [root@localhost ~]# systemctl enable vsftpd //啓動FTP服務並設置爲開機自啓動 [root@localhost ~]# ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.2) Name (127.0.0.1:root): //直接回車 530 Permission denied. Login failed. ftp> //測試FTP服務能夠匿名訪問
yum工具使用的軟件倉庫信息存放在/etc/yum.repos.d目錄下擴展名必須是「.repo」結尾(建議將目錄下原來的文件移出指定目錄),本來的文件是聯網直接能夠從互聯網下載軟件的配置文件。架構
[root@localhost ~]# mv /etc/yum.repos.d/* /a [root@localhost ~]# vim /etc/yum.repos.d/a.repo //建立新的YUM倉庫,內容以下: #建立安裝經過FTP發佈的光盤鏡像中的rpm包 [ftp] //倉庫ID name=ftp //倉庫名稱,自定義,可忽略 baseurl=ftp://192.168.1.1/centos7 //URL訪問路徑(FTP服務須指定到repodate數據文件的上級目錄) enabled=1 //是否啓用軟件倉庫(1啓用,0不啓用)默認值爲1,這項可忽略 gpgcheck=1 //是否驗證軟件包的簽名(1啓用,0不啓用) gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //指定公鑰文件存放位置 #建立安裝經過FTP發佈非光盤鏡像的rpm包 [ftp1] name=ftp1 baseurl=ftp://192.168.1.1/other enabled=1 gpgcheck=0 //沒什麼特殊要求,這項通常是0,不啓用軟件的簽名認證 #經過HTTP發佈的光盤鏡像中的rpm包 [http] name=http baseurl=http://192.168.1.1 //HTTP服務,只需指定HTTP服務的IP地址便可 enabled=1 gpgcheck=0 #若是光盤掛載本地 [local] name=local baseurl=file:///mnt //本地指定光盤鏡像掛載位置 enabled=1 gpgcheck=0
在CentOS 7 服務器中,yum工具是最經常使用的YUM客戶端工具,由默認安裝的yum-3.4.3-150.el7.centos.noarch軟件包提供。app
[root@localhost ~]# yum list //能夠得到系統中的軟件安裝狀況,也能夠查詢軟件倉庫中可用的軟件包列表。 [root@localhost ~]# yum list installed //只列出系統中已安裝的軟件包 [root@localhost ~]# yum list available //只列出軟件倉庫中可用(可是還沒有安裝)的軟件包 [root@localhost ~]# yum list updates //列出能夠升級版本的軟件包
[root@localhost ~]# yum info vsftpd //加軟件包查看詳細的描述信息 已加載插件:fastestmirror, langpacks 源 'a' 在配置文件中未指定名字,使用標識代替 Loading mirror speeds from cached hostfile 已安裝的軟件包 名稱 :vsftpd 架構 :x86_64 版本 :3.0.2 發佈 :21.el7 大小 :348 k 源 :installed 簡介 : Very Secure Ftp Daemon 網址 :https://security.appspot.com/vsftpd.html 協議 : GPLv2 with exceptions 描述 : vsftpd is a Very Secure FTP daemon. It was written completely from : scratch.
[root@localhost ~]# yum search vsftpd
//查詢與vsftpd相關的軟件包
[root@localhost ~]# yum search vsftpd
//加大查詢範圍ide
使用yum命令進行操做時,自動檢查並解決軟件包之間的依懶關係,期間會提示用戶按「y」確認。若但願自動確認,```
能夠在yum命令後添加「-y」選項。工具
[root@localhost ~]# yum -y install vsftpd //安裝vsftpd服務 [root@localhost ~]# yum -y update vsftpd //更新vsftpd服務 [root@localhost ~]# yum -y remove vsftpd //卸載vsftpd服務
若是YUM配置文件編寫錯誤,修改配置文件以後,建議使用
[root@localhost ~]# yum clean all //清空YUM緩存信息