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...