centos7 yum是什麼

2022-03-03 19:00:54

在centos7中,yum全稱「Yellowdog update Modified」,是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。yum基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝。

本教學操作環境:centos7系統、thinkpad t480電腦。

什麼是yum

yum是Yellowdog update Modified的簡稱,是一個在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端軟體包管理器。

基於 RPM 包管理,能夠從指定的伺服器自動下載 RPM 包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

yum 提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令,而且命令簡潔而又好記。

yum的宗旨是自動化的升級、安裝/移除rpm安裝包(也就是說yum這個命令它的操作物件是RPM包),收集rmp的相關資訊,檢查依賴性,並提示使用者解決。

yum的關鍵之處是要有可靠的repository,顧名思義這就是軟體的倉庫,它可以是http或者ftp站點,也可以是原生的軟體池,但是必須包含rpm的header,rmp的header包括了rmp的各種資訊,包括描述、功能、提供的檔案、依賴性等,正是收集了這些資訊,才能自動化的完成餘下的任務。

yum本身就是執行在linux上的自動管理安裝包的系統。yum 的理念是使用一箇中心倉庫(repository)管理一部分甚至一個distribution 的應用程式相互關係,根據計算出來的軟體依賴關係進行相關的升級、安裝、刪除等等操作,減少了Linux 使用者一直頭痛的dependencies 的問題。

這一點上,yum 和apt 相同。apt 原為debian 的deb 型別軟體管理所使用,但是現在也能用到RedHat 門下的rpm 了。

yum的特點

  1.可以同時設定多個資源庫(repository)

  2.簡潔的組態檔(一般組態檔是/etc/yum.conf)

  3.自動解決增加或者刪除rpm包時遇到的依賴問題

  4.保持與rpm的資料庫一致

yum的組態檔

  yum的組態檔,它的絕對路徑一般是:/etc/yum.conf。yum的一切設定資訊都儲存在這個檔案中,這是yum系統中最重要的內容。

  yum.conf一般分為main和repository兩部分,但是預設情況下只有main部分。每一個yum.conf都只能有一個main部分。repository 部分定義了每個源/伺服器的具體設定,可以有一到多個。常位於/etc/yum.repo.d 目錄下的各檔案中。

  使用cat /etc/yum.conf檢視該檔案的內容。

  1.cachedir:此項為yum下載的RPM包的快取目錄,yum在此儲存下載的rpm包和資料庫

  2.keepcache:快取是否儲存,1表示安裝後保留軟體包,0表示安裝後刪除軟體包

  3.debuglevel:出錯紀錄檔級別,級別為0-10,預設為2(只保留安裝和刪除記錄)

  4.logfile:存放系統更新軟體的記錄,使用者可以在該設定項設定的檔案中檢查自己在過去的日子都做了哪些更新

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

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

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

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

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

  10.obsoletes:這是一個update的引數,具體請參閱yum(8),簡單的說就是相當於upgrade,允許更新陳舊的RPM包。

  11.gpgcheck:是否檢查GPG(GNU Private Guard),一種金鑰方式簽名。

  12.plugins:否允許使用外掛,預設是0不允許,但是我們一般會用yum-fastestmirror這個外掛。

  13.installonly_limit:允許保留多少個核心包。

  14.exclude:遮蔽不想更新的RPM包,可用萬用字元,多個RPM包之間使用空格分離。

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

  16.bugtracker_url:追蹤bug路徑

  使用:man 5 yum.conf #可獲得yum.conf的詳解

yum的工作原理

yum的工作模式是C/S架構:

  • Server(yum倉庫):依賴關係庫、原檔案、校驗碼檔案。

  • Client端:yum使用者端程式、組態檔(連線Server路徑資訊)。

執行yum命令時,會首先從」/etc/yum.repo.d」目錄下的眾多repo檔案中取得軟體倉庫的地址並下載「後設資料」,「後設資料」包含註冊於該軟體倉庫內所有軟體包的包名及其所需的依賴環境等資訊,yum得到這些資訊後會和本地以後環境做對比,進而列出確認需要安裝哪些包,並在使用者確認後開始安裝。
「後設資料」由位於yum源伺服器相關路徑的repodata目錄下的repomd.xml做索引。

yum系統的工作流程:

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

  • 使用者端:如果需要安裝某個軟體時,先下載伺服器上面記錄的依賴性關係檔案(可通過WWW或FTP方式),通過對伺服器端下載的紀錄資料進行分析,然後取得所有相關的軟體,一次全部下載下來進行安裝。

.repo檔案

  什麼是repo檔案? repo檔案是Fedora中yum源(軟體倉庫)的組態檔,通常一個repo檔案定義了一個或者多個軟體倉庫的細節內容,例如我們將從哪裡下載需要安裝或者升級的軟體包,repo檔案中的設定內容將被yum讀取和應用!

  進入/etc/yum.repos.d/目錄下,可以看到預設情況下有如下三個檔案:

  其中CentOS-Base.repo 是yum 網路源的組態檔(一般都是用這個)

  CentOS-Debuginfo.repo debug包尤其和核心相關的更新和軟體安裝

  CentOS-Media.repo 這個是使用光碟掛載後呼叫的檔案(我機器上沒有)

  CentOS-Vault.repo 這個是最近新版本的加入的老版本的yum源設定(沒有。。。)

  epel.repo:EPEL(Extra Packages for Enterprise Linux)是由 Fedora 社群打造,為 RHEL 及衍生髮行版如 CentOS等提供高品質軟體包的專案。裝上了 EPEL,就像在 Fedora 上一樣,可以通過 yum install 軟體包名,即可安裝很多以前需要編譯安裝的軟體、常用的軟體或一些比較流行的軟體,比如現在流行的nginx、htop、ncdu、vnstat等等,都可以使用EPEL很方便的安裝更新。前可以直接通過執行命令: yum install epel-release 直接進行安裝,如果不能安裝,參考:

yum命令格式

yum的命令形式一般是如下:yum [options] [command] [package ...]

  其中的[options]是可選的,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。[command]為所要進行的操作,[package ...]是操作的物件。

1.OPTIONS

--nogpgcheck:禁止進行gpg check;

-y: 自動回答為「yes」;

-q: 靜默模式,不輸出顯示資訊

--disablerepo=repoidglob:臨時禁用此處指定的repo;

--enablerepo=repoidglob:臨時啟用此處指定的repo;

--noplugins:禁用所有外掛;

2.常用COMMAND

(1)顯示倉庫列表repolist

# yum repolist [all|enabled|disabled] [所有|可用的|不可用]

  參看:https://blog.csdn.net/xmm1981/article/details/78258176

推薦:《》

以上就是centos7 yum是什麼的詳細內容,更多請關注TW511.COM其它相關文章!