首頁 > 軟體

YUM倉庫設定及命令詳解

2020-06-16 16:33:19

通過原始碼編譯的方式安裝程式在靈活性、可客製化性方面具有無可比擬的優勢,但也正因為這種特性給管理員帶來了額外的維護開銷,當應用在大規模的伺服器群集時存在一定的局限性。那麼就需要使用——YUM軟體倉庫。

YUM軟體倉庫簡介

借助於YUM軟體倉庫,可以完成安裝、解除安裝、自動升級rpm軟體包等任務,能夠自動查詢並解決rpm包之間的依懶關係,而無須管理員逐個、手工地安裝每個rpm包,使管理員在維護大量Linux伺服器時更加輕鬆自如。特別是在擁有大量Linux主機的本地網路中,構建一台源伺服器可以大大緩解軟體安裝、升級等對Internet的依懶。

YUM倉庫簡單來說就是:
1.RPM包構建的軟體更新機制;
2.自動解決依賴關係;
3.軟體包由集中的YUM軟體倉庫提供。

要成功使用YUM機制來更新系統和軟體,需要有一個包含各種rpm安裝包檔案及其依懶軟體的軟體倉庫,提供軟體倉庫的伺服器也稱為“源”伺服器。

部署YUM軟體倉庫

一、準備網路安裝源(伺服器端)

YUM軟體倉庫通常藉助於HTTP協定或FTP協定來進行發布, 這樣可以面向網路中的所有客戶機提供軟體源服務。為了便於客戶機查詢軟體包,獲取依懶關係等資訊,在軟體倉庫中需要提供倉庫資料(repodate檔案),其中收集了目錄下所有的rpm頭部資訊。

RPM軟體包的來源
1.CentOS發布的RPM包集合;
2.第三方組織發布的RPM包集合;
3.使用者自定義的RPM包集合。

1.準備軟體倉庫目錄

在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檔案,
//並制定資料檔案存放位置是當前目錄

2.啟動FTP服務,並保證匿名使用者能正常存取

[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

使用yum工具管理軟體包

在CentOS 7 伺服器中,yum工具是最常用的YUM用戶端工具,由預設安裝的yum-3.4.3-150.el7.centos.noarch軟體包提供。

一、查詢軟體包

1.yum list ——查詢軟體包列表

[root@localhost ~]# yum list
//可以獲得系統中的軟體安裝情況,也可以查詢軟體倉庫中可用的軟體包列表。
[root@localhost ~]# yum list installed
//只列出系統中已安裝的軟體包
[root@localhost ~]# yum list available
//只列出軟體倉庫中可用(但是尚未安裝)的軟體包
[root@localhost ~]# yum list updates
//列出可以升級版本的軟體包

2.yum info——查詢軟體包的描述資訊

[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.

3.yum search——查詢指定的軟體包

[root@localhost ~]# yum search vsftpd
//查詢與vsftpd相關的軟體包
[root@localhost ~]# yum search vsftpd
//加大查詢範圍

二、安裝、升級、解除安裝軟體包

使用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快取資訊

IT145.com E-mail:sddin#qq.com