目標(biāo)
- 了解什么是yum
- 了解yum的命令格式
- 了解如何配置yum
什么是YUM
YUM,全稱Yellow dog Updater, Modifier展懈,是一個(gè)自由、開(kāi)源的命令行軟件包管理工具,運(yùn)行在基于RPM包管理的的Linux操作系統(tǒng)(例如RedHat份氧、CentOS、Suse等)弯屈。
基于 RPM 包管理蜗帜,能夠從指定的服務(wù)器自動(dòng)下載 RPM 包并且安裝,可以自動(dòng)處理依賴性關(guān)系资厉,并且一次安裝所有依賴的軟件包厅缺,無(wú)須繁瑣地一次次下載、安裝宴偿。
yum 主要是更方便的添加湘捎、刪除、更新RPM包窄刘,自動(dòng)解決軟件包之間的依賴關(guān)系窥妇,方便系統(tǒng)更新及軟件管理。yum 通過(guò)軟件倉(cāng)庫(kù)(repository)進(jìn)行軟件的下載娩践、安裝等活翩,軟件倉(cāng)庫(kù)可以是一個(gè) HTTP 或 FTP 站點(diǎn),也可以是一個(gè)本軟件池欺矫,資源倉(cāng)庫(kù)也可以是多個(gè)纱新,在 /etc/yum.conf 文件中進(jìn)行相關(guān)配置即可。在yum的資源庫(kù)中穆趴,會(huì)包括 RPM 的頭信息(header)脸爱,頭信息中包括了軟件的功能描述、依賴關(guān)系等未妹。通過(guò)分析這些信息簿废,yum 計(jì)算出依賴關(guān)系并進(jìn)行相關(guān)的升級(jí)空入、安裝、刪除等操作族檬。
yum的命令
語(yǔ)法
命令格式:
yum [options] [command] [package ...]
options:可選歪赢,選項(xiàng)包括-h(幫助),-y(當(dāng)安裝過(guò)程提示選擇全部為"yes")单料,-q(不顯示安裝的過(guò)程)等等埋凯。
command:要進(jìn)行的操作。
package操作的對(duì)象扫尖。
常用選項(xiàng)(options):
-h, --help #顯示幫助信息
-t, --tolerant #容錯(cuò)
-C, --cacheonly #完全從系統(tǒng)緩存中運(yùn)行白对,不更新緩存
-c [config file], --config=[config file] #本地配置文件
-R [minutes], --randomwait=[minutes] #命令最大等待時(shí)間
-d [debug level], --debuglevel=[debug level] #設(shè)置調(diào)試級(jí)別
-e [error level], --errorlevel=[error level] #設(shè)置錯(cuò)誤等級(jí)
-q, --quiet #退出運(yùn)行
-v, --verbose #詳細(xì)模式
-y, --assumeyes #對(duì)所有交互提問(wèn)都回答 yes
命令列表(command):
check check #檢測(cè) rpmdb 是否有問(wèn)題
check-update #檢查可更新的包
clean #清除緩存的數(shù)據(jù)
deplist #顯示包的依賴關(guān)系
distribution-synchronization #將已安裝的包同步到最新的可用版本
downgrade #降級(jí)一個(gè)包
erase #刪除包
groupinfo #顯示包組的詳細(xì)信息
groupinstall #安裝指定的包組
grouplist #顯示可用包組信息
groupremove #從系統(tǒng)刪除已安裝的包組
help #刪除幫助信息
history #顯示或使用交互歷史
info #顯示包或包組的詳細(xì)信息
install #安裝包
list #顯示可安裝或可更新的包
makecache #生成元數(shù)據(jù)緩存
provides #搜索特定包文件名
reinstall #重新安裝包
repolist #顯示已配置的資源庫(kù)
resolvedep #指事實(shí)上依賴
search #搜索包
shell #進(jìn)入yum的shell提示符
update #更新系統(tǒng)中的包
upgrade #升級(jí)系統(tǒng)中的包
version #顯示機(jī)器可用源的版本
查詢功能:
yum [list | info | search | provides | whatprovides] 參數(shù)
$ yum [option] [查詢工作項(xiàng)目] [相關(guān)參數(shù)]
選項(xiàng)與參數(shù):
[option]:主要的選項(xiàng),包括有:
-y :當(dāng) yum 要等待使用者輸入時(shí)换怖,這個(gè)選項(xiàng)可以自動(dòng)提供 yes 的回應(yīng)甩恼;
--installroot=/some/path :將該軟件安裝在 /some/path 而不使用默認(rèn)路徑
[查詢工作項(xiàng)目] [相關(guān)參數(shù)]:這方面的參數(shù)有:
search :搜尋某個(gè)軟件名稱或者是描述 (description) 的重要關(guān)鍵字;
list :列出目前 yum 所管理的所有的軟件名稱與版本沉颂,有點(diǎn)類似 rpm -qa条摸;
info :同上,不過(guò)有點(diǎn)類似 rpm -qai 的運(yùn)行結(jié)果铸屉;
provides:從文件去搜尋軟件钉蒲!類似 rpm -qf 的功能!
范例一:搜尋git相關(guān)的軟件有哪些抬探?
$ yum search git
范例二:找出 git 這個(gè)軟件的功能為何
$ yum info git
范例三:列出 yum 服務(wù)器上面提供的所有軟件名稱
$ yum list
范例四:列出目前服務(wù)器上可供本機(jī)進(jìn)行升級(jí)的軟件有哪些子巾?
$ yum list updates <==一定要是 updates 喔!
范例五:列出提供 passwd 這個(gè)文件的軟件有哪些
$ yum provides passwd
安裝/升級(jí)功能
yum [install | update | groupinstall | groupupdate] 軟件
$ yum [option] [查詢工作項(xiàng)目] [相關(guān)參數(shù)]
選項(xiàng)與參數(shù):
install :后面接要安裝的軟件小压!
groupinstall : 組包安裝线梗,后面接軟件包組
update :后面接要升級(jí)的軟件,若要整個(gè)系統(tǒng)都升級(jí)怠益,就直接 update 即可
groupupdate : 組包升級(jí)
范例一:安裝git
$ yum install git
范例二:升級(jí)真?zhèn)€系統(tǒng)的軟件
$ yum update
移除功能
yum [remove | groupremove] 軟件
$ yum remove git
清除緩存
yum 會(huì)把下載的軟件包和header存儲(chǔ)在cache中仪搔,而不會(huì)自動(dòng)刪除。如果我們覺(jué)得它們占用了磁盤(pán)空間蜻牢,可以使用yum clean指令進(jìn)行清除烤咧,更精確的用法是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:定義了全局配置選項(xiàng)煮嫌,該文件只有一個(gè)。通常位于 /etc/yum.conf
- repository:定義了源服務(wù)器的具體配置抱虐,可能是一或多個(gè)昌阿。通常位于 /etc/yum.repo.d 目錄
配置文件main
可以通過(guò)以下命令查看yum的配置:
cat /etc/yum.conf
主要配置項(xiàng)如下:
[main]
# yum 的緩存目錄,用于存儲(chǔ)下載的 RPM 包和數(shù)據(jù)庫(kù)
cachedir=/var/cache/yum/$basearch/$releasever
# 安裝完成后是否保留軟件包,0為不保留(默認(rèn)為0)懦冰,1為保留
keepcache=0
# Debug 信息輸出等級(jí)灶轰,范圍為0-10,默認(rèn)為2
debuglevel=2
# yum 日志文件位置刷钢,用戶通過(guò)該文件查詢做過(guò)的更新
logfile=/var/log/yum.log
# 是否只安裝和系統(tǒng)架構(gòu)匹配的軟件包笋颤。可選項(xiàng)為:1?0内地,默認(rèn)為1
# 設(shè)置為 1 時(shí)不會(huì)將 i686 的軟件包安裝在適合i386的系統(tǒng)中
exactarch=1
# update 設(shè)置伴澄,是否允許更新陳舊的 RPM 包,相當(dāng)于 upgrade
obsoletes=1
# 是否進(jìn)行 GPG(GNU Private Guard) 校驗(yàn)瓤鼻,以確定 RPM 包的來(lái)源是有效和安全
# 當(dāng)在這個(gè)選項(xiàng)設(shè)置在[main]部分秉版,則對(duì)每個(gè) repository 都有效
plugins=1
# 是否啟用插件贤重,默認(rèn)1為允許茬祷,0表示不允許
gpgcheck=1
# 排除某些軟件在升級(jí)名單之外,可以用通配符并蝗,各個(gè)項(xiàng)目用空格隔開(kāi)
exclude=*.i?86 kernel kernel-xen kernel-debug
# 可同時(shí)安裝多少程序包
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
# 當(dāng)前發(fā)行版版本號(hào)
distroverpkg=centos-release
配置目錄repository
查看對(duì)應(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
...
說(shuō)明:
- [base]:代表容器的名字祭犯!中刮號(hào)一定要存在,里面的名稱則可以隨意取滚停。但是不能有兩個(gè)相同的容器名稱沃粗, 否則 yum 會(huì)不曉得該到哪里去找容器相關(guān)軟件清單文件。
- name:只是說(shuō)明一下這個(gè)容器的意義而已键畴,重要性不高最盅!
- mirrorlist=:列出這個(gè)容器可以使用的映射站臺(tái),如果不想使用起惕,可以注解到這行涡贱;
- baseurl=:這個(gè)最重要,因?yàn)楹竺娼拥木褪侨萜鞯膶?shí)際網(wǎng)址惹想! mirrorlist 是由 yum 程序自行去捉映射站臺(tái)问词, baseurl 則是指定固定的一個(gè)容器網(wǎng)址!我們剛剛找到的網(wǎng)址放到這里來(lái)啦嘀粱!
- enable=1:就是讓這個(gè)容器被啟動(dòng)激挪。如果不想啟動(dòng)可以使用 enable=0 喔!
- gpgcheck=1:還記得 RPM 的數(shù)碼簽章嗎锋叨?這就是指定是否需要查閱 RPM 文件內(nèi)的數(shù)碼簽章垄分!
- gpgkey=:就是數(shù)碼簽章的公鑰檔所在位置!使用默認(rèn)值即可
注意:手工修改repo文件后娃磺,需要更新緩存薄湿,命令如下
yum clean all
2018.05.03
參考
1.yum(software);
2.鳥(niǎo)哥-yum;
3.yum簡(jiǎn)單介紹;
4.linux yum命令詳解