在centos7中,yum全稱“Yellowdog update Modified”,是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。yum基于RPM包管理,能夠從指定的服務(wù)器自動下載RPM包并且安裝。
本教程操作環(huán)境:centos7系統(tǒng)、thinkpad t480電腦。
什么是yum
yum是Yellowdog update Modified的簡稱,是一個在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端軟件包管理器。
基于 RPM 包管理,能夠從指定的服務(wù)器自動下載 RPM 包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
yum 提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。
yum的宗旨是自動化的升級、安裝/移除rpm安裝包(也就是說yum這個命令它的操作對象是RPM包),收集rmp的相關(guān)信息,檢查依賴性,并提示用戶解決。
yum的關(guān)鍵之處是要有可靠的repository,顧名思義這就是軟件的倉庫,它可以是http或者ftp站點(diǎn),也可以是本地的軟件池,但是必須包含rpm的header,rmp的header包括了rmp的各種信息,包括描述、功能、提供的文件、依賴性等,正是收集了這些信息,才能自動化的完成余下的任務(wù)。
yum本身就是運(yùn)行在linux上的自動管理安裝包的系統(tǒng)。yum 的理念是使用一個中心倉庫(repository)管理一部分甚至一個distribution 的應(yīng)用程序相互關(guān)系,根據(jù)計算出來的軟件依賴關(guān)系進(jìn)行相關(guān)的升級、安裝、刪除等等操作,減少了Linux 用戶一直頭痛的dependencies 的問題。
這一點(diǎn)上,yum 和apt 相同。apt 原為debian 的deb 類型軟件管理所使用,但是現(xiàn)在也能用到RedHat 門下的rpm 了。
yum的特點(diǎn)
1.可以同時配置多個資源庫(repository)
2.簡潔的配置文件(一般配置文件是/etc/yum.conf)
3.自動解決增加或者刪除rpm包時遇到的依賴問題
4.保持與rpm的數(shù)據(jù)庫一致
yum的配置文件
yum的配置文件,它的絕對路徑一般是:/etc/yum.conf。yum的一切配置信息都存儲在這個文件中,這是yum系統(tǒng)中最重要的內(nèi)容。
yum.conf一般分為main和repository兩部分,但是默認(rèn)情況下只有main部分。每一個yum.conf都只能有一個main部分。repository 部分定義了每個源/服務(wù)器的具體配置,可以有一到多個。常位于/etc/yum.repo.d 目錄下的各文件中。
使用cat /etc/yum.conf查看該文件的內(nèi)容。
1.cachedir:此項為yum下載的RPM包的緩存目錄,yum在此存儲下載的rpm包和數(shù)據(jù)庫
2.keepcache:緩存是否保存,1表示安裝后保留軟件包,0表示安裝后刪除軟件包
3.debuglevel:出錯日志級別,級別為0-10,默認(rèn)為2(只保留安裝和刪除記錄)
4.logfile:存放系統(tǒng)更新軟件的記錄,用戶可以在該配置項配置的文件中檢查自己在過去的日子都做了哪些更新
5.pkgpolicy: 包的策略。一共有兩個選項,newest和last,這個作用是如果你設(shè)置了多個repository,而同一軟件在不同的repository中同時存 在,yum應(yīng)該安裝哪一個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將服務(wù)器id以字母表排序,并選擇最后的那個服務(wù)器上的軟件安裝。
6.distroverp:指定一個軟件包,yum會根據(jù)這個包判斷你的發(fā)行版本,默認(rèn)是RedHat-release,也可以是安裝的任何針對自己發(fā)行版的rpm包。
7.tolerent:也有1和0兩個選項,表示yum是否容忍命令行發(fā)生與軟件包有關(guān)的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經(jīng)安裝了,如果你設(shè)為1,則yum不會出現(xiàn)錯誤信息。默認(rèn)是0。
8.exactarch:有兩個選項1和0,代表是否只升級和你安裝軟件包c(diǎn)pu體系一致的包,如果設(shè)為1,則如你安裝了一個i386的rpm,則yum不會用1686的包來升級。
9.retries:網(wǎng)絡(luò)連接發(fā)生錯誤后的重試次數(shù),如果設(shè)為0,則會無限重試。
10.obsoletes:這是一個update的參數(shù),具體請參閱yum(
8
),簡單的說就是相當(dāng)于upgrade,允許更新陳舊的RPM包。
11.gpgcheck:是否檢查GPG(GNU Private Guard),一種密鑰方式簽名。
12.plugins:否允許使用插件,默認(rèn)是
0
不允許,但是我們一般會用yum-fastestmirror這個插件。
13.installonly_limit:允許保留多少個內(nèi)核包。
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架構(gòu):
-
Server端(yum倉庫):依賴關(guān)系庫、原文件、校驗碼文件。
-
Client端:yum客戶端程序、配置文件(連接Server路徑信息)。
執(zhí)行yum命令時,會首先從”/etc/yum.repo.d”目錄下的眾多repo文件中取得軟件倉庫的地址并下載“元數(shù)據(jù)”,“元數(shù)據(jù)”包含注冊于該軟件倉庫內(nèi)所有軟件包的包名及其所需的依賴環(huán)境等信息,yum得到這些信息后會和本地以后環(huán)境做對比,進(jìn)而列出確認(rèn)需要安裝哪些包,并在用戶確認(rèn)后開始安裝。
“元數(shù)據(jù)”由位于yum源服務(wù)器相關(guān)路徑的repodata目錄下的repomd.xml做索引。
yum系統(tǒng)的工作流程:
-
服務(wù)器端:在服務(wù)器上面存放了所有的rpm軟件包,然后以相關(guān)的功能去分析每個rpm文件的依賴性關(guān)系,將這些數(shù)據(jù)記錄成文件存放在服務(wù)器的某特定目錄內(nèi)。
-
客戶端:如果需要安裝某個軟件時,先下載服務(wù)器上面記錄的依賴性關(guān)系文件(可通過WWW或FTP方式),通過對服務(wù)器端下載的紀(jì)錄數(shù)據(jù)進(jìn)行分析,然后取得所有相關(guān)的軟件,一次全部下載下來進(jìn)行安裝。
.repo文件
什么是repo文件? repo文件是Fedora中yum源(軟件倉庫)的配置文件,通常一個repo文件定義了一個或者多個軟件倉庫的細(xì)節(jié)內(nèi)容,例如我們將從哪里下載需要安裝或者升級的軟件包,repo文件中的設(shè)置內(nèi)容將被yum讀取和應(yīng)用!
進(jìn)入/etc/yum.repos.d/目錄下,可以看到默認(rèn)情況下有如下三個文件:
其中CentOS-Base.repo 是yum 網(wǎng)絡(luò)源的配置文件(一般都是用這個)
CentOS-Debuginfo.repo debug包尤其和內(nèi)核相關(guān)的更新和軟件安裝
CentOS-Media.repo 這個是使用光盤掛載后調(diào)用的文件(我機(jī)器上沒有)
CentOS-Vault.repo 這個是最近新版本的加入的老版本的yum源配置(沒有。。。)
epel.repo:EPEL(Extra Packages for Enterprise Linux)是由 Fedora 社區(qū)打造,為 RHEL 及衍生發(fā)行版如 CentOS等提供高質(zhì)量軟件包的項目。裝上了 EPEL,就像在 Fedora 上一樣,可以通過 yum install 軟件包名,即可安裝很多以前需要編譯安裝的軟件、常用的軟件或一些比較流行的軟件,比如現(xiàn)在流行的nginx、htop、ncdu、vnstat等等,都可以使用EPEL很方便的安裝更新。前可以直接通過執(zhí)行命令: yum install epel-release 直接進(jìn)行安裝,如果不能安裝,參考:
yum命令格式
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可選的,選項包括-h(幫助),-y(當(dāng)安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。[command]為所要進(jìn)行的操作,[package …]是操作的對象。
1.OPTIONS
–nogpgcheck:禁止進(jìn)行g(shù)pg 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
推薦:《centos使用教程》