我們知道CentOS,本質上是RedHat的社區版,其無論是功能還是軟件配置上都與RedHat保持一致,因此CentOs系列的軟件包管理主要的也是rpm和yum工具。
RPM包管理
rpm包管理工具可以說是歷史悠久、名聲斐然了。rpm起初是RedHat公司研發的軟件包管理工具,即RedHat Package Managemer。但由于其性能突出,在開源界得到了各大Linux發行廠商的認同,被推崇為公認的行業標準,因此rpm也改為遞歸稱呼RPM Package Manager。
雖然現在的標準CentOS系統都有yum可以使用,rpm工具似乎已經無用武之地,但作為yum利器的基礎軟件,在某些情況下還是很需要掌握的。尤其是當我們安裝一個單獨的外來rpm軟件包的時候,直接使用rpm進行安裝明顯要好很多。
安裝
rpm {-i|–install} [install-options] PACKAGE_FILE…
#尤其需要注意的是這里使用的是rpm包文件的全名
-v: 顯示安裝過程信息
-h: 以# 顯示程序包管理執行進度
–test: 測試安裝,但不真正執行安裝;dry run 模式
–nodeps :忽略依賴關系
–replacepkgs | replacefiles :替換原來的安裝包或文件
–nosignature: 不檢查來源合法性
–nodigest :不檢查包完整性
–noscripts :不執行程序包腳本
升級/更新
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
upgrade :安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”
freshen :安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級操作
–oldpackage :降級
–force : 強制安裝
注意:在Linux下同一軟件的不同版本可以共存,這在某些情況下是非常方便的,尤其是當需要在某個軟件的兩個版本之間進行頻繁切換的時候。另外?。。∩a環境中,針對系統內核一定要謹慎升級,可以重新安裝,讓兩個版本的內核并存,避免新內核不穩定造成嚴重影響。
查詢
rpm {-q|–query} [select-options] [query-options] [select-options]
-a: 所有已經安裝的軟件包
-f: 查看系統上指定的文件由哪個程序包安裝生成
-p:對尚未安裝的程序包文件進行查詢,需要加上-p選項
–whatprovides CAPABILITY :查詢指定的CAPABILITY由哪個包所提供
–whatrequires CAPABILITY :查詢指定的 CAPABILITY 被哪個包所依賴
–changelog :查詢rpm 包的changelog
-c: 查詢程序的配置文件
-d: 查詢程序的文檔
-i: information
-l: 查看指定的程序包安裝后生成的 所有文件
–scripts :程序包自帶 的腳本
-R|–requires: 查詢指定的程序包所依賴的 CAPABILITY
–provides: 列出指定程序包所提供的 CAPABILITY
卸載
rpm {-e|–erase}[–allmatches][–nodeps][–noscripts][–notriggers][–test] PACKAGE_NAME…
校驗
rpm {-V|–verify} [select-options] [verify-options] 對安裝后的軟件進行校驗
校驗結果各字符的含義:
S 文件大小發生改變
M Mode 改變(包括權限和文件類型)
5 MD5校驗發生改變
D 設備號不匹配
L readLink(2) 路徑不匹配
U User 信息發生改變
G Group 信息發生改變
T mTime 改變
P capabilities 發生改變
rpm -K|checksig rpmfile 軟件包文件的校驗,需要提前導入密鑰文件
rpm –import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
YUM管理工具
使用過yum的人,信息都不想再繼續用rpm來進行軟件的安裝,最主要的原因就是yum很好的解決了軟件安裝過程中的包依賴關系,讓軟件的安裝不再那么“痛苦”,尤其是當我們在安裝過程中被各種依賴搞得焦頭爛額卻仍然無法搞定的時候,一條yum命令卻可以輕松解決。這么神奇的工具是如何實現的呢?
YUM: Yellowdog Update Modifier,是Yellowdog公司開發出來的rpm前端程序,能夠很好的解決軟件包安裝過程中的相互依賴關系。Yum是構建在rpm基礎之上的,所以沒有rpm,yum也是無法使用的。要想更好的使用yum,需要進行提前配置的(系統默認已經進行配置,我們也可以根據自己需要進行修改),yum的配置主要分為客戶端和服務端(在后面部分會講解相關配置)。
安裝程序包:
yum install package1 [package2] […] 注意:這里用的是軟件包名,不是軟件包的文件名
yum reinstall package1 [package2] […] 重新安裝
–nogpgcheck :禁止進行gpg check
-y: 自動回答為“yes”
-q :靜默模式
–noplugins :禁用所有插件
升級程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] 降級
檢查可用升級:
yum check-update
卸載程序包:
yum remove | erase package1 [package2] […]
安裝及升級本地程序包:
yum localinstall rpmfile1 [rpmfile2] […] ( 用install 替代)
yum localupdate rpmfile1 [rpmfile2] […] ( 用update 替代)
包組管理的相關命令:
yum groupinstall group1 [group2] […]
yum groupupdate group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]
yum groupremove group1 [group2] […]
yum groupinfo group1 […]
查看程序包information: :
yum info […] 查看指定的特性(可以是某文件)由哪個程序包所提供:
yum provides | whatprovides feature1 [feature2][…]
搜索:
yum search string1 [string2] […] 以指定的關鍵字搜索程序包名及summary 信息
查看指定包所依賴的capabilities: :
yum deplist package1 [package2] […]
查看yum 事務歷史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
顯示倉庫列表:
yum repolist [all|enabled|disabled]
顯示程序包:
yum list
yum list [all | glob_exp1] [glob_exp2] […]
yum list {available|installed|updates} [glob_exp1][…]
清理本地緩存:
yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]
構建緩存:
yum makecache
YUM倉庫的配置
yum倉庫主要分為兩部分,一部分是rpm軟件包,一部分是yum配置文件repodata。可以將兩者放在一個目錄,當然為了便于管理,我們還是建議兩者分開。
第一步,創建目錄結構。那么首先我們創建一個yum倉庫的目錄centos,如果你同時為多個版本(如centos6和7)提供yum源,那么可以在centos目錄下分別創建目錄(目錄6和7),然后分別創建yum倉庫;如果只是為單一版本提供yum源,可以直接在centos目錄創建yum倉庫,我們這里以centos7為例。進入到要創建yum倉庫的目錄,創建一個軟件包的存放目錄Packages(名稱可以自己定義)。
第二步,獲取rpm軟件包。rpm軟件包,可以從光盤、官方網站、第三方獲取,或自己制作rpm軟件包,把我們獲取到的rpm軟件包移到Packages目錄下。
第三步,創建配置文件。當以上步驟準備就緒以后,我們就可以使用createrepo命令來創建yum倉庫的配置文件repodata了。命令格式如下:
createrepo [/PATH/TO/REPODATA] [/PATH/TO/RPM_PACKAGES/]
createrepo centos/7 centos/7/Packages
至此,我們的yum倉庫服務端已經配置好了,最終的目錄結構如下圖。是不是感覺很簡單呢?當然,如果你想通過網絡為更多的人提供yum源服務,那就需要配置ftp或http web服務了,只需要將我們配置好的yum倉庫放置在我們提供服務的相應目錄里即可。
YUM客戶端的配置
yum客戶端的配置文件在/etc/yum.repos.d/目錄中,默認系統已經提供了大部分的官方網絡yum源配置,當然大家也可以使用我們自己配置的yum源。這里需要我們創建一個以.repo結尾的配置文件,并編輯文件的內容,格式如下:
[CentOS7]
name=CentOS7 base repo
baseurl=file:///misc/cd/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS7
enabled=1
[CentOS7] 這個是yum倉庫的ID,名稱可以自己定義,但在系統中需要是唯一的,不能重復
name= 這個是yum倉庫的描述信息,可以沒有
baseurl= 這個是yum源repodata父目錄的位置,有本地file://或網絡ftp://或http://三種形式
gpgcheck= 這個說明對于安裝的軟件是否要進行校驗,1為校驗,0為不校驗
gpgkey= 指定gpgcheck校驗碼的位置;如果gpgcheck為1,則該項必須填寫,并且正確
enabled= 該項指明該倉庫是否可用,1為可用,0為不可用
該例中,我們的yum倉庫位于本機/misc/cd目錄下,該目錄下有rpm軟件包目錄Packages和配置文件目錄repodata兩個子目錄,因此使用baseurl=file:///misc/cd指明路徑。
當配置好本地客戶端以后,使用yum clean all命令清理一下yum緩存,這樣我們就可以愉快的使用yum了。
原創文章,作者:M21-張國輝,如若轉載,請注明出處:http://www.www58058.com/57835