如上篇博文說的那樣,RPM很方便,不過RPM也有它的不方便之處, 不重複開發輪子的開源開發的理念使得安裝某個開源軟體時候,總是需要手動的解決軟體之間的依賴關係, 很多軟體安裝之前必須提前安裝一個或者幾個其他軟體, 手工解決非常麻煩, 可以使用YUM來解決這個困難。
YUM
是一個RPM的前端程式,其主要目的是為了自動解決RPM的自動依賴關係。他不像RPM一樣, YUM不是一種新的軟體封裝形式,它是專門用來管理RPM的,其特點如下:
-自動解決依賴關係
-可以對RPM進行分組,並基於組進行安裝操作
-引進了倉庫的概念,支援多個倉庫(後邊會說)
-配置簡單
YUM的出現是為瞭解決軟體間的依賴關係,那麼安裝一個軟體時候如果依賴另一個軟體,YUM會自動尋找這個軟體,但是怎麼去找呢? 於是就引入了倉庫(repo)的概念
YUM倉庫
倉庫用來存放所有現有的rpm軟體包, 當YUM安裝一個rpm軟體包的時候,如果存在依賴關係,它會在倉庫中尋找軟體並安裝, 如果倉庫中沒有要找的rpm軟體包那麼yum也就解
決不了該軟體的依賴關係。
倉庫可以是本地的, 也可以通過HTTP,FTP或者NFS等形式集中的、統一的網路倉庫(網上會提供很多YUM倉庫的伺服器)。
yum使用倉庫儲存管理rpm軟體包,將設定檔存放在 /etc/yum.repos.d/ 下格式如下:
【reponame】 //reponame 為倉庫的名字
name = this is repo of huntinggo! //雖然寫的是name,但是後邊是對倉庫的簡介
baseurl = http://hehe.com/yum/rpms //這裡也可以是本地的目錄
enabled = 1 //是不是開啟這個配置選項
gpgcheck = 1 //是否開啟校正,防止別人修改rpm包
該設定檔的檔案名稱字是隨便起的,但是最後必須得以.repo 尾碼名結尾
在/etc/yum.repos.d/ 目錄下可以有多個設定檔
一個配置文間內可以存放多個倉庫資訊(也就是上邊的5行),
YUM基本命令
yum install softwarename 安裝指定軟體
yum remove softwarename 卸載指定軟體
yum update softwarename 升級指定軟體
YUM查詢命令
yum search hehe 查詢關鍵字裡變含有hehe的所有rpm軟體包的描述
yum list(all/installed/recent/updates) 列出全部,安裝過的,最近的,
yum info softwarename 查詢軟體的資訊和rpm -qi 的功能是一樣的
yum whatprovides filename 查詢那個rpm軟體包含目標檔案
以上都是說的是baseurl為http 或者其他, 從互連網上下載rpm包,那麼怎麼建立本地yum倉庫呢?
YUM本地倉庫
可以通過一下方式手工建立yum倉庫:
1.將所有的rpm檔案拷到一個檔案加下
2.yum不可能每次安裝都掃描整個檔案夾,太慢了, 必須建立一個索引檔案, 通過rpm -ivh安裝createrepo
3.通過createrepo -v yum倉庫的目錄 建立索引檔案, 這時候會在目前的目錄下出現repodata的一個檔案夾
4.這時候就按如上所說的,在 /etc/yum.repos.d/ 目錄下建立一個檔案,假設其名為 hunting.repo 其中的內容可以如下
【hunting】
name = hunting's repo
baseurl = file:///yum倉庫的目錄
enabled = 1
gpgcheck = 1
通過yum clear all 可以清除安裝軟體時的緩衝。