linux yum的配置檔案 repo檔案詳解

2021-07-04 22:59:40 字數 3539 閱讀 4370

yum的工作原理並不複雜,每乙個 rpm軟體的頭(header)裡面都會紀錄該軟體的依賴關係,那麼如果可以將該頭的內容紀錄下來並且進行分析,可以知道每個軟體在安裝之前需要額外安裝 哪些基礎軟體。也就是說,在伺服器上面先以分析工具將所有的rpm檔案進行分析,然後將該分析紀錄下來,只要在進行安裝或公升級時先查詢該紀錄的檔案,就可 以知道所有相關聯的軟體。所以yum的基本工作流程如下:

伺服器端:在伺服器上面存放了所有的rpm軟體包,然後以相關的功能去分析每個rpm檔案的依賴性關係,將這些資料記錄成檔案存放在伺服器的某特定目錄內。

vi /etc/yum.conf

[main]

cachedir=/var/cache/yum

debuglevel=2

#debuglevel:除錯級別,0──10,預設是2 貌似只記錄安裝和刪除記錄

logfile=/var/log/yum.log

pkgpolicy=newest

#pkgpolicy: 包的策略。一共有兩個選項,newest和last,這個作用是如果你設定了多個repository,而同一軟體在不同的repository中同時存 在,yum應該安裝哪乙個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將伺服器id以字母表排序,並選擇最後的那個 伺服器上的軟體安裝。一般都是選newest。

distroverpkg=centos-release

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

tolerant=1

#tolerent,也有1和0兩個選項,表示yum是否容忍命令列發生與軟體包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum不會出現錯誤資訊。預設是0。

exactarch=1

#exactarch,有兩個選項1和0,代表是否只公升級和你安裝軟體包cpu體系一致的包,如果設為1,則如你安裝了乙個i386的rpm,則yum不會用1686的包來公升級。

retries=20

#retries,網路連線發生錯誤後的重試次數,如果設為0,則會無限重試。

obsoletes=1

gpgcheck=1

#gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,預設是檢查的。

reposdir=/etc/yy.rm #預設是 /etc/yum.repos.d/ 低下的 xx.repo字尾檔案

#預設都會被include 進來 也就是說 /etc/yum.repos.d/xx.repo 無論配置檔案有多少個 每個裡面有多少個[name] 最後其實都被整合到 乙個裡面看就是了 重複的[name]後面的覆蓋前面的

exclude=***

#exclude 排除某些軟體在公升級名單之外,可以用萬用字元,列表中各個專案要用空格隔開,這個對於安裝了諸如美化包,中文補丁的朋友特別有用。

keepcache=[1 or 0]

#  設定 keepcache=1,yum 在成功安裝軟體包之後保留快取的標頭檔案 (headers) 和軟體包。預設值為 keepcache=0 不儲存

reposdir=[包含 .repo 檔案的目錄的絕對路徑]

#  該選項使用者指定 .repo 檔案的絕對路徑。.repo 檔案包含軟體倉庫的資訊 (作用與 /etc/yum.conf 檔案中的 [repository] 片段相同)。

第二部分:

vi /etc/yum.repo.d/xx.repo

這個字段其實也可以在yum.conf裡面直接配置

[serverid]

#其中serverid是用於區別各個不同的repository,必須有乙個獨一無二的名稱。 重複了 前面覆蓋後面--還是反過來呢???用enabled 測試是後面覆蓋前面

name=some name for this server

#name,是對repository的描述,支援像$releasever $basearch這樣的變數; name=fedora core $releasever - $basearch - released updates

baseurl=url://path/to/repository/

#baseurl是伺服器設定中最重要的部分,只有設定正確,才能從上面獲取軟體。它的格式是:

baseurl=url://server1/path/to/repository/

url://server2/path/to/repository/

url://server3/path/to/repository/

#其中url支援的協議有 http:// ftp:// file://三種。baseurl後可以跟多個url,你可以自己改為速度比較快的映象站,但baseurl只能有乙個,也就是說不能像如下格式:

baseurl=url://server1/path/to/repository/

baseurl=url://server2/path/to/repository/

baseurl=url://server3/path/to/repository/

其中url指向的目錄必須是這個repository header目錄的上一級,它也支援$releasever $basearch這樣的變數。

#mirrorlist=

#上面的這一行是指定乙個映象伺服器的位址列表,通常是開啟的,本例中加了注釋符號禁用了,我們可以試試,將$releasever和$basearch替換成自己對應的版本和架構,例如10和i386,在瀏覽器中開啟,我們就能看到一長串鏡可用的映象伺服器位址列表。

url之後可以加上多個選項,如gpgcheck、exclude、failovermethod等,比如:

gpgcheck=1

exclude=gaim

#其中gpgcheck,exclude的含義和[main]部分相同,但只對此伺服器起作用,

failovermethod=priority

#failovermethode 有兩個選項roundrobin和priority,意思分別是有多個url可供選擇時,yum選擇的次序,roundrobin是隨機選擇,如果連線失 敗則使用下乙個,依次迴圈,priority則根據url的次序從第乙個開始。如果不指明,預設是roundrobin。

enabled=[1 or 0]

#當某個軟體倉庫被配置成 enabled=0 時,yum 在安裝或公升級軟體包時不會將該倉庫做為軟體包提供源。使用這個選項,可以啟用或禁用軟體倉庫。

#通過 yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 選項,或者通過 packagekit 的"新增/刪除軟體"工具,也能夠方便地啟用和禁用指定的軟體倉庫

幾個變數

$releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。

$arch,cpu體系,如i686,athlon等

$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。

對yum.conf設定完成,我們就可以好好體驗yum帶來的方便了。

linux yum配置檔案repo

reposdir 包含 repo 檔案的目錄的絕對路徑 該選項使用者指定 repo 檔案的絕對路徑。repo 檔案包含軟體倉庫的資訊 作用與 etc yum.conf 檔案中的 repository 片段相同 第二部分 vi etc yum.repo.d xx.repo 這個字段其實也可以在yum....

linux yum的配置檔案 repo檔案

yum的工作原理並不複雜,每乙個 rpm軟體的頭 header 裡面都會紀錄該軟體的依賴關係,那麼如果可以將該頭的內容紀錄下來並且進行分析,可以知道每個軟體在安裝之前需要額外安裝哪些基礎軟體。也就是說,在伺服器上面先以分析工具將所有的rpm檔案進行分析,然後將該分析紀錄下來,只要在進行安裝或公升級時...

docker使用外部配置檔案安裝啟動redis

1拉取自己想要安裝的映象版本 本例使用5.0.9 docker pull redis 5.0.9 檢視是否拉去成功 docker images2建立宿主機對映目錄mkdir home dockers redis conf mkdir home dockers redis data 修改一些引數 bi...