yum的工作原理並不複雜,每乙個 rpm軟體的頭(header)裡面都會紀錄該軟體的依賴關係,那麼如果可以將該頭的內容紀錄下來並且進行分析,可以知道每個軟體在安裝之前需要額外安裝哪些基礎軟體。也就是說,在伺服器上面先以分析工具將所有的rpm檔案進行分析,然後將該分析紀錄下來,只要在進行安裝或公升級時先查詢該紀錄的檔案,就可以知道所有相關聯的軟體。所以yum的基本工作流程如下:
伺服器端:在伺服器上面存放了所有的rpm軟體包,然後以相關的功能去分析每個rpm檔案的依賴性關係,將這些資料記錄成檔案存放在伺服器的某特定目錄內。
vi /etc/yum.conf
[main]
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 #兩個選項:1和0,表示yum是否容忍命令列發生與軟體包有關的錯誤,比如你要安裝1,2,3三個包,
#而其中3此前已經安裝了,如果你設為1,則yum不會出現錯誤資訊。預設是0。
exactarch=1 #兩個選項:1和0,代表是否只公升級和你安裝軟體包cpu體系一致的包,如果設為1,
#則如你安裝了乙個i386的rpm,則yum不會用1686的包來公升級。
retries=20 #網路連線發生錯誤後的重試次數,如果設為0,則會無限重試。
obsoletes=1
gpgcheck=1 #兩個選項:1和0,分別代表是否是否進行gpg校驗,如果沒有這一項,預設是檢查的。(所以是1檢查,0不檢查?)
reposdir=[包含 .repo 檔案的目錄的絕對路徑]
#預設是 /etc/yum.repos.d/ 低下的 xx.repo字尾檔案
#該選項使用者指定 .repo 檔案的絕對路徑。.repo 檔案包含軟體倉庫的資訊
#(作用與 /etc/yum.conf 檔案中的 [repository] 片段相同)。
#預設都會被include 進來 也就是說 /etc/yum.repos.d/xx.repo
#無論配置檔案有多少個 每個裡面有多少個[name]
#最後其實都被整合到 乙個裡面看就是了 重複的[name]後面的覆蓋前面的
exclude=*** #exclude 排除某些軟體在公升級名單之外,可以用萬用字元,列表中各個專案要用空格隔開,
#這個對於安裝了諸如美化包,中文補丁的朋友特別有用。
keepcache=[1 or 0] #設定 keepcache=1,yum 在成功安裝軟體包之後保留快取的標頭檔案 (headers) 和軟體包。
#預設值為 keepcache=0 不儲存
第二部分:
vi /etc/yum.repo.d/xx.repo
這個字段其實也可以在yum.conf裡面直接配置
[serverid] #方括號裡面的是軟體源的名稱,將被yum取得並識別
#其中serverid是用於區別各個不同的repository,必須有乙個獨一無二的名稱。
#重複了 前面覆蓋後面--還是反過來呢???用enabled 測試是後面覆蓋前面
name=some name for this server #對repository的描述,支援像$releasever $basearch這樣的變數;
#name=fedora core $releasever - $basearch - released updates
baseurl=url://path/to/repository/ #baseurl是伺服器設定中最重要的部分,只有設定正確,才能從上面獲取軟體。它的格式是:
#baseurl=url://server2/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 #有兩個選項:roundrobin和priority,意思分別是有多個url可供選擇時,yum選擇的次序,
#roundrobin是隨機選擇,如果連線失敗則使用下乙個,依次迴圈,priority則根據url的次序從第乙個開始。
#如果不指明,預設是roundrobin。
enabled=[1 or 0] #當某個軟體倉庫被配置成 enabled=0 時,yum 在安裝或公升級軟體包時不會將該倉庫做為軟體包提供源。
#使用這個選項,可以啟用或禁用軟體倉庫。
#通過 yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 選項,
#或者通過 packagekit 的"新增/刪除軟體"工具,也能夠方便地啟用和禁用指定的軟體倉庫
幾個變數
參考:
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...