什么是YUM
YUM弛说,全稱Yellow dog Updater, Modifier良姆,是一個自由、開源的命令行軟件包管理工具嘶居,運行在基于RPM包管理的的Linux操作系統(tǒng)(例如RedHat厚者、CentOS躁劣、Suse等)。
基于 RPM 包管理籍救,能夠從指定的服務(wù)器自動下載 RPM 包并且安裝习绢,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包蝙昙,無須繁瑣地一次次下載、安裝梧却。
yum 主要是更方便的添加奇颠、刪除、更新RPM包放航,自動解決軟件包之間的依賴關(guān)系烈拒,方便系統(tǒng)更新及軟件管理。yum 通過軟件倉庫(repository)進行軟件的下載广鳍、安裝等荆几,軟件倉庫可以是一個 HTTP 或 FTP 站點,也可以是一個本軟件池赊时,資源倉庫也可以是多個吨铸,在 /etc/yum.conf 文件中進行相關(guān)配置即可。在yum的資源庫中祖秒,會包括 RPM 的頭信息(header)诞吱,頭信息中包括了軟件的功能描述舟奠、依賴關(guān)系等。通過分析這些信息房维,yum 計算出依賴關(guān)系并進行相關(guān)的升級沼瘫、安裝、刪除等操作咙俩。
yum的命令
語法
命令格式:
yum [options] [command] [package ...]
options:可選耿戚,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes")阿趁,-q(不顯示安裝的過程)等等溅话。
command:要進行的操作。
package操作的對象歌焦。
常用選項(options):
-h, --help #顯示幫助信息
-t, --tolerant #容錯
-C, --cacheonly #完全從系統(tǒng)緩存中運行飞几,不更新緩存
-c [config file], --config=[config file] #本地配置文件
-R [minutes], --randomwait=[minutes] #命令最大等待時間
-d [debug level], --debuglevel=[debug level] #設(shè)置調(diào)試級別
-e [error level], --errorlevel=[error level] #設(shè)置錯誤等級
-q, --quiet #退出運行
-v, --verbose #詳細模式
-y, --assumeyes #對所有交互提問都回答 yes
命令列表(command):
check check #檢測 rpmdb 是否有問題
check-update #檢查可更新的包
clean #清除緩存的數(shù)據(jù)
deplist #顯示包的依賴關(guān)系
distribution-synchronization #將已安裝的包同步到最新的可用版本
downgrade #降級一個包
erase #刪除包
groupinfo #顯示包組的詳細信息
groupinstall #安裝指定的包組
grouplist #顯示可用包組信息
groupremove #從系統(tǒng)刪除已安裝的包組
help #刪除幫助信息
history #顯示或使用交互歷史
info #顯示包或包組的詳細信息
install #安裝包
list #顯示可安裝或可更新的包
makecache #生成元數(shù)據(jù)緩存
provides #搜索特定包文件名
reinstall #重新安裝包
repolist #顯示已配置的資源庫
resolvedep #指事實上依賴
search #搜索包
shell #進入yum的shell提示符
update #更新系統(tǒng)中的包
upgrade #升級系統(tǒng)中的包
version #顯示機器可用源的版本
查詢功能:
yum [list | info | search | provides | whatprovides] 參數(shù)
$ yum [option] [查詢工作項目] [相關(guān)參數(shù)]
選項與參數(shù):
[option]:主要的選項,包括有:
-y :當 yum 要等待使用者輸入時独撇,這個選項可以自動提供 yes 的回應(yīng)屑墨;
--installroot=/some/path :將該軟件安裝在 /some/path 而不使用默認路徑
[查詢工作項目] [相關(guān)參數(shù)]:這方面的參數(shù)有:
search :搜尋某個軟件名稱或者是描述 (description) 的重要關(guān)鍵字;
list :列出目前 yum 所管理的所有的軟件名稱與版本纷铣,有點類似 rpm -qa卵史;
info :同上,不過有點類似 rpm -qai 的運行結(jié)果搜立;
provides:從文件去搜尋軟件以躯!類似 rpm -qf 的功能!
范例一:搜尋git相關(guān)的軟件有哪些啄踊?
$ yum search git
范例二:找出 git 這個軟件的功能為何
$ yum info git
范例三:列出 yum 服務(wù)器上面提供的所有軟件名稱
$ yum list
范例四:列出目前服務(wù)器上可供本機進行升級的軟件有哪些忧设?
$ yum list updates <==一定要是 updates 喔!
范例五:列出提供 passwd 這個文件的軟件有哪些
$ yum provides passwd
安裝/升級功能
yum [install | update | groupinstall | groupupdate] 軟件
$ yum [option] [查詢工作項目] [相關(guān)參數(shù)]
選項與參數(shù):
install :后面接要安裝的軟件颠通!
groupinstall : 組包安裝址晕,后面接軟件包組
update :后面接要升級的軟件,若要整個系統(tǒng)都升級顿锰,就直接 update 即可
groupupdate : 組包升級
范例一:安裝git
$ yum install git
范例二:升級真?zhèn)€系統(tǒng)的軟件
$ yum update
移除功能
yum [remove | groupremove] 軟件
$ yum remove git
清除緩存
yum 會把下載的軟件包和header存儲在cache中谨垃,而不會自動刪除。如果我們覺得它們占用了磁盤空間硼控,可以使用yum clean指令進行清除刘陶,更精確的用法是yum clean headers清除header,yum clean packages清除下載的rpm包牢撼,yum clean all 清除所有
yum [clean]
1.清除緩存目錄(/var/cache/yum)下的軟件包
$ yum clean packages
2.清除緩存目錄(/var/cache/yum)下的 headers
$ yum clean headers
3.清除緩存目錄(/var/cache/yum)下舊的 headers
$ yum clean oldheaders
4.清除緩存目錄(/var/cache/yum)下的軟件包及舊的headers
$ yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
yum的配置
yum 的配置文件分為main 和repository :
- main:定義了全局配置選項匙隔,該文件只有一個。通常位于 /etc/yum.conf
- repository:定義了源服務(wù)器的具體配置浪默,可能是一或多個牡直。通常位于 /etc/yum.repo.d 目錄
配置文件main
可以通過以下命令查看yum的配置:
$ cat /etc/yum.conf
主要配置項如下:
[main]
# yum 的緩存目錄缀匕,用于存儲下載的 RPM 包和數(shù)據(jù)庫
cachedir=/var/cache/yum/$basearch/$releasever
# 安裝完成后是否保留軟件包,0為不保留(默認為0)碰逸,1為保留
keepcache=0
# Debug 信息輸出等級乡小,范圍為0-10,默認為2
debuglevel=2
# yum 日志文件位置饵史,用戶通過該文件查詢做過的更新
logfile=/var/log/yum.log
# 是否只安裝和系統(tǒng)架構(gòu)匹配的軟件包满钟。可選項為:1?0胳喷,默認為1
# 設(shè)置為 1 時不會將 i686 的軟件包安裝在適合i386的系統(tǒng)中
exactarch=1
# update 設(shè)置湃番,是否允許更新陳舊的 RPM 包,相當于 upgrade
obsoletes=1
# 是否進行 GPG(GNU Private Guard) 校驗吭露,以確定 RPM 包的來源是有效和安全
# 當在這個選項設(shè)置在[main]部分吠撮,則對每個 repository 都有效
plugins=1
# 是否啟用插件,默認1為允許讲竿,0表示不允許
gpgcheck=1
# 排除某些軟件在升級名單之外泥兰,可以用通配符,各個項目用空格隔開
exclude=*.i?86 kernel kernel-xen kernel-debug
# 可同時安裝多少程序包
installonly_limit=5
# Bug 追蹤路徑
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
# 當前發(fā)行版版本號
distroverpkg=centos-release
配置目錄repository
在yum.repos.d 目錄下存放的就是yum源的設(shè)定文件题禀。
查看對應(yīng)目錄下的文件內(nèi)容
$ cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
...
說明:
- [base]:代表容器的名字鞋诗!中刮號一定要存在,里面的名稱則可以隨意取迈嘹。但是不能有兩個相同的容器名稱削彬, 否則 yum 會不曉得該到哪里去找容器相關(guān)軟件清單文件。
- name:只是說明一下這個容器的意義而已秀仲,重要性不高融痛!
- mirrorlist=:列出這個容器可以使用的映射站臺,如果不想使用啄育,可以注解到這行酌心;
- baseurl=:這個最重要,因為后面接的就是容器的實際網(wǎng)址挑豌! mirrorlist 是由 yum 程序自行去捉映射站臺, baseurl 則是指定固定的一個容器網(wǎng)址墩崩!我們剛剛找到的網(wǎng)址放到這里來啦氓英!
- enable=1:就是讓這個容器被啟動。如果不想啟動可以使用 enable=0 喔鹦筹!
- gpgcheck=1:還記得 RPM 的數(shù)碼簽章嗎铝阐?這就是指定是否需要查閱 RPM 文件內(nèi)的數(shù)碼簽章!
- gpgkey=:就是數(shù)碼簽章的公鑰檔所在位置铐拐!使用默認值即可
注意:手工修改repo文件后徘键,需要更新緩存练对,命令如下
yum clean all
2018.05.03
參考
1.yum(software);
2.鳥哥-yum;
3.yum簡單介紹吹害;
4.linux yum命令詳解