Linux_yum工具基本概述
一、什麼是yum
1️⃣:yum是yellowdog update manager的簡稱,它能夠實現rpm管理的所有操作,並能夠自動解決各rpm包之間的依賴關係。
2️⃣:yum是rpm的前端工具,是基於rpm來實現軟體的管理的一個工具
3️⃣:不能用yum去管理windows的exe程式包,也不能用yum去管理ubuntu的deb程式包,只能用yum來管理redhat系列的rpm包
二、yum的優劣
1️⃣:yum最大的優勢就是能夠解決rpm的依賴問題,yum能夠自動解決軟體安裝時的依賴關係
2️⃣:yum的缺陷就是如果在未完成安裝的情況下強行中止安裝過程,下次再安裝時將無法解決依賴關係
3️⃣:dnf是redhat7上用來代替yum的一個工具,其存在的意義就是處理yum的缺陷,但其用法與yum是完全一樣的
三、yum的原理
1、yum伺服器端工作原理
1️⃣:所有要發行的rpm包都放在yum伺服器上以提供別人來下載,rpm包根據kernel的版本號,cpu的版本號分別編譯釋出
2️⃣:yum伺服器只要提供簡單的下載就可以了,ftp或者http的形式都可以
3️⃣:yum伺服器有一個最重要的環節就是整理出每個rpm包的基本資訊,包括rpm包對應的版本號、conf檔案、binary資訊,以及很關鍵的依賴資訊
4️⃣:在yum伺服器上提供了createrepo工具,用於把rpm包的基本概要資訊做成一張“清單”,這張“清單”就是描述每個rpm包的spec檔案中資訊
2、clinet端工作原理
1️⃣:client每次呼叫yum install或者search的時候,都會去解析/etc/yum.repos.d下面所有以.repo結尾的配置檔案
2️⃣:yum會定期去更新yum伺服器上的rpm包清單,然後把清單下載儲存到yum客戶端自己的cache裡面
3️⃣:根據/etc/yum.conf裡配置(預設是/var/cache/yum下面),每次呼叫yum裝包的時候都會去這個cache目錄下去找清單,
4️⃣:根據清單裡的rpm包描述從而來確定安裝包的名字、版本號、所需要的依賴包等,然後再去yum伺服器下載rpm安裝(前提是不存在rpm包的cache)
四、yum的配置檔案
1、yum的配置檔案有:
- /etc/yum.conf //為所有倉庫提供公共配置
- /etc/yum.repos.d/*.repo //為倉庫的指向提供配置(軟體倉庫的配置檔案,必須以.repo結尾)
2、yum的repo配置檔案中可用的變數:
- $releaseversion //當前OS的發行版的主版本號
- $arch //平臺型別
- $basearch //基礎平臺
3、yum的配置檔案示例
//首先在/etc/yum.repo.d/下面建立一個repo檔案 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# touch dvd.repo //檔名必須以.repo結尾 [root@localhost yum.repos.d]# ls dvd.repo redhat.repo(redhat.repo是自帶的,可以不用管,裡面啥也沒有) [root@localhost yum.repos.d]# vim dvd.repo [BaseOS] //倉庫的名稱(可以隨意寫) name=baseos //描述資訊(可以隨意寫) baseurl=file:///mnt/BaseOS //倉庫的絕對路徑(我這是用的本地源) gpgcheck=0 //檢測軟體倉庫來源的合法性,0為不檢查,1為檢測;如果為1,則需要指明gpgkey= enabled=1 //是否啟用此倉庫,1為啟用,0為不啟用 [AppStream] name=appstream baseurl=file:///mnt/AppStream gpgcheck=0 enabled=1 //RHEL8版本的Packages被分在了BaseOS和AppStream中,所以需要配置兩個倉庫
[repo_name] //倉庫的名稱 name= //倉庫的描述資訊 baseurl= //倉庫的具體路徑,接受以下三種類型 ftp:// #ftp上的倉庫源 http:// #網路上的倉庫源 file:/// #本地的絕對路徑 enabled=1或者0 1為啟用此倉庫;0為禁用此倉庫 gpgcheck=1或者0 1為檢查軟體包來源合法性;0為不檢查來源 如果gpgcheck設為1,則必須用gpgkey定義金鑰檔案的具體路徑: gpgkey=/PATH/TO/KEYrepo引數說明
4、yum的其他引數說明
cachedir=/var/cache/yum/$basearch/$releasever //快取目錄 keepcache=0 //快取軟體包, 1啟動 0 關閉 debuglevel=2 //除錯級別 logfile=/var/log/yum.log //日誌記錄位置 exactarch=1 //檢查平臺是否相容 obsoletes=1 //檢查包是否廢棄 gpgcheck=1 //檢查來源是否合法,需要有製作者的公鑰資訊 plugins=1 //是否啟用外掛 tolerant={1|0} //容錯功能,1為開啟,0為關閉,當設為0時,如果用yum安裝多個軟體包且其中某個軟體包已經安裝過就會報錯;當設為1時,當要安裝的軟體已經安裝時自動忽略 installonly_limit=5 bugtracker_url # metadata_expire=90m //每小時手動檢查元資料 # in /etc/yum.repos.d //包含repos.d目錄