軟件安裝與升級——yum
yum是通過分析RPM的標頭資料後,根據各軟件的相關性製作出屬性相依時的解決方案,自動處理軟件的關聯問題,實現軟件安裝、升級、移除。
爲了方便用戶軟件安裝、升級,distribution 會先釋出軟件,然後將軟件放置在一個服務器上,這個服務器可以被稱爲yum源
。目前有許多的yum源
,用戶在使用yum時,可以找到合適的yum源
,裏面有許多不同的軟件。
查詢
如果需要查看原版distribution所提供的軟件,或想知道某軟件的功能,可以使用yum
來查詢。
yum [option] [參數] [參數值]
選項與參數
[option]
主要的選項有以下幾個:
-y
:當yum
要等待用戶輸入時,這個選項可以自動提供yes
的響應-h
:顯示幫助信息-c
:指定配置文件-q
:安靜模式-v
:詳細模式-d
:設置調試等級(0-10)-e
:設置錯誤等級(0-10)-R
:設置yum處理一個命令的最大等待時間-C
:完全從緩存中運行,而不去下載或者更新任何頭文件--installroot=/some/path
:將該軟件安裝在/some/path
而不使用默認路徑
[參數]
的選項有以下幾個:
search
:搜尋某個軟件名稱或是描述(discription)的重要關鍵字list
:列出目前yum
所管理的所有的軟件名稱與版本,有點類似rpm -qa
info
:同上,不過有點類似rpm -qai
的運行結果provides
:通過文件搜尋軟件,類似rpm -qf
的功能
安裝與升級
yum [option] [參數] [參數值]
[option]
可以參考上面查詢的選項。
[參數]
則有install
/update
,install
用於安裝軟件,update
用戶升級軟件,後面都是接對應的軟件名。
移除軟件
yum [option] remove 軟件名稱
[option]
可以參考上面查詢的選項。
移除軟件的時候,直接在remove
後面接軟件名稱即可。
yum源配置文件
yum
的yum源
配置文件一般位於/etc/yum.repos.d
目錄下,如文件/etc/yum.repos.d/CentOS-Base.repo
就是CentOS
系統下yum源
的配置文件。
# 查看配置文件內容
[root@instance-d619ad0f ~]# vim /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://mirrors.baidubce.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
如上所示,配置文件中有設置一個名爲base
的軟件庫,配置的參數說明如下:
[base]
:軟件庫的名稱,中括號必須存在,裏面的名稱可以隨便取,但不能有兩個相同名稱的軟件庫name
:說明該軟件庫的意義,只是起到說明作用。mirrorlist
:設置這個軟件庫的映射站臺,設置了這個映射站臺,yum
程序會通過該站臺尋找yum源
,不想用可以註釋掉baseurl
:用戶設定實際的yum源
,mirrorlist
是由yum
自動尋找yum源
,baseurl
是指定一個yum源
。enabled
:設置是否開啓使用該軟件庫,1
爲啓用,0
爲禁用gpgcheck
:指定是否需要查閱RPM文件內的數字簽名gpgkey
:數字簽名公鑰文件的位置
我們可以通過以下指令來查看當前系統中所有軟件庫。
[root@instance-d619ad0f ~]# yum repolist all
Loaded plugins: langpacks, versionlock
repo id repo name status
C7.0.1406-base/x86_64 CentOS-7.0.1406 - Base disabled
C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 - CentOSPlus disabled
省略...
C7.4.1708-updates/x86_64 CentOS-7.4.1708 - Updates disabled
baidu-bcm Baidu Cloud Monitor (BCM) enabled: 66
base/7/x86_64 CentOS-7 - Base enabled: 9,911
base-debuginfo/x86_64 CentOS-7 - Debuginfo disabled
省略...
extras/7/x86_64 CentOS-7 - Extras enabled: 432
extras-source/7 CentOS-7 - Extras Sources disabled
fasttrack/7/x86_64 CentOS-7 - fasttrack disabled
updates/7/x86_64 CentOS-7 - Updates enabled: 1,614
updates-source/7 CentOS-7 - Updates Sources disabled
修改軟件庫時產生的問題與解決方法
yum源
配置文件都是在/etc/yum.repos.d
目錄下,且該目錄下文件擴展名爲.repo
的纔會被系統認爲是yum源
配置文件。此外,yum
會生成軟件庫清單並保存到/var/cache/yum
中,而yum
生成清單時是把軟件庫名稱(即中括號中的文字,如:base)當做一個軟件庫的唯一標識。所以,當我們更改了軟件庫的yum源
卻沒有更改軟件庫名稱,可能會造成本機的軟件列表與yum源
上的軟件列表不同步,這樣就會出現無法更新的問題。此時我們可以通過如下指令來清除本機上的軟件清單。
yum clean [packages|headers|all]
packages
:刪除已下載的軟件文件headers
:將下載的軟件文件頭刪除all
:將所有軟件庫數據都刪除
針對以上問題,我們可以使用yum clean all
來解決。
yum 的軟件羣組功能
當一個項目需要用到許多軟件時,我們一個個裝未免顯得有點麻煩。此時,我們可以使用yum
的軟件羣組功能。
yum [option] [參數] [參數值]
[option]
可以參考yum查詢中提到的選項。
[參數]
有如下選項:
grouplist
:列出所有可能使用的軟件羣組groupinfo
:後面接軟件羣組名稱,可以查看軟件羣組中所有的軟件名groupinstall
:後面接軟件羣組名稱,可以安裝軟件羣組中的所有軟件groupremove
:後面接軟件羣組名稱,可以移除軟件羣組中所有的軟件