首頁 > 軟體

軟體包管理之前端管理工具yum

2020-06-16 17:22:16

一、前言

RPM安裝軟體有一個很繁瑣的問題,那就是包與包之間的依賴關係,如果想正常安裝和使用軟體程式,就必須根據要求一步一步的解決軟體之間的依賴關係。那麼如果程式使用的包很多,將會很消耗使用人的時間和精力。那麼有沒有辦法解決這一問題呢?

在RPM中我們介紹了RPM軟體會記錄軟體之間的安裝資訊,其中也包括了軟體之間的依賴屬性。那麼如果我們在安裝前就分析這個列表,那麼在安裝時就能根據軟體之間的關係將所需的軟體一次性安裝起來,這樣就能解決這一問題,這就是 YUM 的機制。

二、yum的介紹

yum(Yellow dog Updater Modified)是CentOS中屬於RPM前段軟體包管理器,能從指定的伺服器中下載RPM包,並自動分析和處理RPM包之間的依賴關係,最後將依次所依賴的軟體包都安裝了,而無需繁瑣的一個一個安裝。

三、yum repository:yum倉庫

yum倉庫的組成部分

3.1、資料

  • 包含所有的軟體包檔案

3.2、後設資料

  • 指的是資料檔案:包括每個包的包名、版本資訊、各包所包含的檔案列表、包與包之間的依賴關係、包的分組資訊

小擴充套件:後設資料是怎麼來的呢?

使用createrepo工具,能夠簡潔的快速的將我們所指定的存放大量RPM包的目錄,裡面所有的RPM包資訊都讀出來,分析他的依賴關係並生成後設資料。所以createrepo可以理解為它是製作yum後設資料的工具。 在光碟裡其實也有這個後設資料,路徑在光碟中的 [root@www mnt]# cd repodata/ 裡,然後是以 sqlite檔案字尾 備註:centos5 是以 xml 字尾,centos6、7是以sqlite資料庫的方式儲存的

四、yum的組態檔介紹

yum的組態檔有2個: 主組態檔 + 倉庫組態檔

4.1、主組態檔路徑 /etc/yum.conf

[main]    
cachedir=/var/cache/yum/$basearch/$releasever     
#下載RPM包的快取目錄

keepcache=0                                       
#RPM快取的程式包安裝完成後是否儲存,0表示不儲存,1表示儲存

buglevel=2                                        
#偵錯級別 取值範圍 0 - 10,預設值為2    

logfile=/var/log/yum.log                          
#yum相關紀錄檔存放路徑

exactarch=1                                       
#是否要平台完全匹配才能安裝

obsoletes=1                                       
#需不需要檢查已過期的倉庫

gpgcheck=1                                        
#是否檢查包的完整性和合法性

plugins=1                                         
#是否允許支援yum的外掛功能,0 表示不允許 ,1表示允許,建議允許,一般會用yum-fastestmirror這個外掛           

installonly_limit=5                               
#允許保留多少個核心包

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release                       
#指定一個軟體包,yum 會根據這個包判斷你的發行版本,預設是RedHat-release,也可以是安裝的任何針對自己發行版的rpm包

4.2、倉庫組態檔路徑 /etc/yum.repos.d/*.repo

倉庫檔案可以有多個,而且一個或幾個相關的倉庫的設定資訊也可儲存為一個檔案,並且所以的倉庫檔名都以 .repo結尾。

[REPOID]             #容器名字,必須是唯一的
name=                #some name for this repository倉庫的名字,僅作一個標識
baseurl=             #指定真正倉庫所在的路徑,可以指多個倉庫
                        #例如:baseurl=file:///media/cdrom
                        #      ftp://172.168.1.1/path    #備註第二行不能頂格寫,否則會出錯
mirrorlist=          #列出容器可以使用站點,如果不想使用,可以再前面加 # 注釋
enabled= {0 | 1}     #指是否啟用這個倉庫,0表示不啟用,1表示啟用
gpgcheck= {0 | 1}    #是否要檢測軟體包的合法性,0表示不檢測,1表示不檢查
gpgkey=              #軟體包的公鑰檔案所在路徑,例如:gpgkey=file:///media/cdrom/GPG-RPM-KEY-centos-6
cost=  
#倉庫優先順序,比如一個軟體包在多個倉庫都有,那應該選擇哪個安裝呢?就是根據這個優先順序,預設是100,
數位越小表示越優先使用

備註:預設各倉庫的用法:

        base庫:通常為系統發行版所提供的程式包(就是光碟)

        updates庫:存放更新包

        extra庫:存放額外包

        epel庫:epel庫檔案

           庫本身有優先順序的,但是僅是在用戶端有,伺服器端是沒有優先順序的

小貼士:yum可支援多個協定,包括 ftp、http、nfs和本地檔案共用服務

所以倉庫組態檔中的 baseurl 一項可以有多個寫法,下面是各寫法的格式

1)ftp

格式:ftp://server/path/to/repository

2)http

格式:http://server/path/to/repository

3)nfs

格式:nfs://server/nfs_path

4)本地檔案共用服務

格式:file:///path/to/repository

五、yum安裝步驟

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2017-02/140270p2.htm


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