2021-05-12 14:32:11
Linux yum的設定使用和程式包的編譯安裝
在上一篇部落格中,寫到了如何使用rpm命令來安裝、解除安裝軟體等,但是大家都知道,各個軟體包之間可能存在依賴關係,如果安裝某個軟體需要額外的依賴其他若干的包,那麼我們就需要將其他額外的包一個一個的安裝上去,這樣的一個過程是非常耗時的,所以出現了一個前端工具,如yum,dnf,apt-get等,本次部落格就CentOS上的yum和程式包的編譯安裝做出詳細的描述,最後還通過實際的例子介紹了程式包的編譯安裝。
yum的實現原理
yum實現軟體包的獲取其實是基於C/S架構的,C為你的主機,S為yum repository(檔案伺服器或者本地yum repository),yum repository裡面儲存了眾多的rpm包,以及包的相關後設資料檔案(包含軟體包的列表和依賴關係等)和計算出來的特徵碼,一般放在repodata目錄下面。
當我們使用yum安裝一個軟體包的時候,會進行如下幾個步驟:
1.本地主機會在組態檔裡面找到yum repository的指向,並建立連線;
2.從yum repository獲取後設資料檔案和特徵碼放在快取裡面;
3.通過檢視後設資料檔案獲知需要安裝的軟體包和其依賴的軟體的名稱並向yum repository發起請求;
4.本地主機獲取到軟體包後進行安裝。
5.安裝好後,rpm包會被刪除,但是後設資料檔案和特徵碼會被儲存下來,其目的是為了當你再向yum repository發起連線的時候,先會向yum repository獲取到特徵碼和本地快取的特徵碼做對比,如果相同則說明yum repository裡面的檔案沒有發生改變,如果不同,則說明yum repository裡面的檔案發生了改變,這時候就需要重新向yum repository獲取後設資料檔案了。
通常情況下yum repository都是檔案伺服器,你可以通過URL進行存取,如:
ftp://path/to/repository/ 通過FTP進行存取和傳輸
http://path/to/repository/ 通過http進行存取和傳輸
nfs://path/to/repository/ 通過nfs進行存取和傳輸
file:///path/to/repository/ 用於原生的yum倉庫
yum的組態檔
yum的組態檔有:
/etc/yum.conf:為所有倉庫提供公共設定
/etc/yum.repos.d/下以repo結尾的檔案:為倉庫的指向提供設定
yum.conf的內容:
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
cachedir:快取目錄,預設情況下在"/var/cache/yum";
keepcache:是否儲存快取,0是不儲存,1是儲存;
debuglevel:Debug資訊的輸出等級,範圍為0-10,預設為2
logfile:存放log的檔案路徑
exactarch:是否精確匹配平台,預設是1,精確匹配平台
obsolete:這個選項僅僅會影響升級,簡單的說相當於upgrade,允許更新舊版本的rpm包
gpgcheck:是否經驗安裝包的來源合法性
plugins:是否允許使用外掛安裝外掛,1表示安裝
installonly_limit:允許同時保持的核心包
bugtracker_url:bug的追蹤的url
distroverpkg:指定一個軟體包,yum會根據這個包判斷你的發行版本,這裡是centos-release
相關文章