如何練好yum的一招一式
工作時(shí)間越久,就越有這樣一個(gè)深刻體會,一個(gè)新知識或者新的技能一個(gè)人學(xué)習(xí)起來并不會覺得吃力,反而要想把你學(xué)習(xí)的新知識或者新技能給講清楚讓普通人聽得懂才是最難的,之前我寫過一篇博客講述Linux下的RPM包管理器,今天寫的練好yum的一招一式,同樣都是都是在Linux系統(tǒng)的軟件包的安裝、卸載、升級等功能的,為什么我們還需要yum那,記得一位大哲學(xué)家黑格爾說說過這樣一句話“存在即合理”,yum的存在也有合乎情理的,首先讓我們來弄明白yum是什么?
yum全稱為 Yellow dog Updater, Modified,是一個(gè)以rpm為基礎(chǔ)包能夠從指定的服務(wù)器自動(dòng)下載rpm包,并且自動(dòng)解決各軟件包的依賴性關(guān)系,一次性安裝好所有制定的軟件包的一個(gè)工具,我想,稍微接觸過Linux的人都知道rpm包管理器出現(xiàn),主要是解決早期Linux系統(tǒng)管理過程中源代碼安裝的不便以及效率底下的問題,雖然rpm很好的提高了軟件安裝的效率,但是rpm依然沒有解決各軟件包之間的依賴關(guān)系,而yum的出現(xiàn)就是自行解決了各軟件包直接的依賴關(guān)系,從而又將軟件安裝的效率往前推了一步。
首先讓我們先了解一下yum能為我們做什么,yum的主要功能有三類,倉庫管理;軟件包管理;軟件包組的管理,接下來我們詳細(xì)來看yum的三大功能和使用方法:
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可選的, [command]為所要進(jìn)行的操作,[package ...]是操作的對象。
1、倉庫管理:yum的倉庫管理主要有列出已經(jīng)配置到的所有可用倉庫、緩存管理、以及自動(dòng)連接至每個(gè)倉庫下載元數(shù)據(jù),將其創(chuàng)建緩存
列出可用倉庫:yum repolist [all|enabled|disabled]
緩存管理:yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
創(chuàng)建緩存:yum makecache
2、軟件包管理:yum對于程序包的管理主要包括:程序包的列出、程序包的安裝、指定程序包的重新安裝、程序包的升級、程序包的降級、程序包的卸載、程序包的查詢、程序包的搜索等功能;
程序包的列出:yum list
程序包的安裝:yum install
此時(shí)安裝程序包只需要提供程序包名就可以安裝指定的程序包,如果該指定的程序包有在指定的倉庫中有不同版本,默認(rèn)會安裝最新版本。
指定程序包的重新安裝:yum reinstall
程序包的升級:yum update
程序包的降級:yum downgrade
程序包的卸載:yum remove
執(zhí)行該命令,所有依賴于正卸載的程序包也會一并卸載
程序包的查詢:yum info
程序包的搜索:yum search
3、程序包組管理:程序包組管理的與程序包管理類似,主要包括:顯示列出所有包組、顯示包組詳情、安裝包組、卸載包組、升級包組;
顯示列出所有包組:yum grouplist
顯示包組詳情:yum groupinfo
安裝包組:yum groupinstall
卸載包組:yum groupremove
升級包組:yum groupupdate
以上都是yum的常用命令,同時(shí)yum還有常用的選項(xiàng)
-y:表示自動(dòng)回答為YES
--disablerepo= :臨時(shí)禁用指定的倉庫
--enablerepo= :臨時(shí)啟用指定的倉庫
--nogpgchenk:禁止包檢驗(yàn)
知道了yum能為我們做什么,那如何使用yum的這些功能那,我們前面曾說過早期的Linux安裝程序包是通過直接對源代碼的重新編譯、設(shè)置一系列的環(huán)境變量和配置文件來時(shí)間軟件的安裝,而rpm將安裝的軟件先編譯并打包,通過包裝好的套件中默認(rèn)的數(shù)據(jù)庫記錄來實(shí)現(xiàn)對軟件包的安裝卸載等查詢工作,最大的特點(diǎn)就是省去編譯的過程,但是各軟件包之間的依賴關(guān)系卻需要管理員自行手動(dòng)解決,而yum以rpm為基礎(chǔ)包,通過讀取rpm中header對于該rpm的描述、功能、提供的文件、依賴性等信息,并加以分析出來,自行解決依賴各軟件包的依賴關(guān)系,大大提供的部署系統(tǒng)的效率,我們都知道,Linux有一個(gè)重要的哲學(xué)思想,就是一切皆文件,所以對于yum的配置就不得不說yum的配置文件,yum的配置文件有兩類,下面來認(rèn)識一下yum的配置文件;
主配置文件:/etc/yum.conf
該配置文件是為各倉庫指向提供公共的配置信息
各倉庫定義的配置文件:/etc/yum.repo.d/*.repo
給配置文件是倉庫位置的指向以及各種配置信息,該配置文件都以”.repo”結(jié)尾,每個(gè)repo配置文件中可以配置一個(gè)或多個(gè)倉庫;
[ ] :當(dāng)中是唯一表示該倉庫的名字,所以必須唯一,不能與其他倉庫重復(fù),
name= :是對當(dāng)前倉庫的描述信息
baseurl= :指明repositouy的訪問路徑,支持ftp服務(wù)器、http服務(wù)器、nfs服務(wù)器、或本地目錄;
enabled= {0|1}:指明該倉庫是否可被使用
gpgcheck={0|1}:指明是否對程序包做合法性、完整性驗(yàn)證
gpgkey= :指明gpgkey的文件路徑
cost= :指明當(dāng)前repositouy的訪問開銷
下面我們將以CentOS6.7為平臺,創(chuàng)建自己的第一個(gè)本地yum源
通常情況下,創(chuàng)建本地yum源,也就是以CentOS6.7光盤為yum倉庫從而實(shí)現(xiàn)對yum源的配置,步驟如下:
1:掛載光盤到:/mnt/cdrom
mount /dev/cdrom /mnt/cdrom
2:創(chuàng)建配置文件:vim /etc/yum.repo.d/localbase.repo
[localbase]
name=centOS6
baseurl=file:///mnt/cdrom/
gpgcheck=0
enable=0
注意:如果是以本地某個(gè)目錄為yum源,需要檢查該目錄是否有repodata文件,如果沒有該文件需要執(zhí)行createrepo
3:執(zhí)行yum repolist查看創(chuàng)建的yum源是否生效
4:測試安裝httpd軟件這時(shí)候我們已經(jīng)看到y(tǒng)um為我們找到了安裝http軟件包,并且安裝成功