標籤:
簡介:
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
yum設定檔:
主設定檔:/etc/yum.conf (對所有yum倉庫都有效)
各倉庫的定義:/etc/yum.repos.d/*.repo (僅對自己倉庫生效,優先順序大於主設定檔。)
如下,我們自己建立一個yum庫:
[testrepo]:代表倉庫唯一標識ID
name:當前倉庫簡要介紹資訊
baseurl:倉庫的URL地址(ftp | http | 本地目錄)
gpgcheck:是否校正包(1是 | 0否)
enabled:倉庫是否可用
yum命令:
yum [options] [command] [package ...]
command is one of:
* install package1 [package2] [...]
* update [package1] [package2] [...]
* update-to [package1] [package2] [...]
* check-update
* upgrade [package1] [package2] [...]
* upgrade-to [package1] [package2] [...]
* distribution-synchronization [package1] [package2] [...]
* remove | erase package1 [package2] [...]
* list [...]
* info [...]
* provides | whatprovides feature1 [feature2] [...]
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
* makecache
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
* search string1 [string2] [...]
* shell [filename]
* resolvedep dep1 [dep2] [...]
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
* reinstall package1 [package2] [...]
* downgrade package1 [package2] [...]
* deplist package1 [package2] [...]
* repolist [all|enabled|disabled]
* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
* history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
* load-transaction [txfile]
* check
* help [command]
介紹幾個常用參數:
倉庫管理:
repolist: 列出已經配置的所有可用倉庫
repolist [all|enabled|disabled]
緩衝管理:
clean:清理緩衝
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
makecache: 緩衝建立
自動連接至每一個可用倉庫,下載其中繼資料,將其建立為緩衝
程式包查看:
yum list [all | glob_exp1] [glob_exp2] [...]
支援使用萬用字元,例如:yum list php* --查看php開頭的包
yum list {available|updates|installed|extras|obsoletes} [glob_exp1] [...]
條件尋找,查看程式包,例如:available(有效程式包),installed(已安裝的程式包)
grouplist [hidden] [groupwildcard] [...]
程式包安裝:install package1 [package2] [...]
注意:
只需要提供包名;
如果某包有在不同倉庫中有多個不同版本,預設會安裝最新版本;
如果要安裝指定版本:install PACKAGE-VERSION ...
重新安裝(覆蓋安裝)reinstall package1 [package2] [...]
程式包升級:update [package1] [package2] [...]
程式包降級:downgrade package1 [package2] [...]
檢查有哪些升級可用:check-update
程式包卸載:
remove | erase package1 [package2] [...]
所有依賴於正卸載的程式包的程式包會被一併卸載;
程式包查詢:
查詢程式的相關簡要資訊:info PACKAGE ...
例如:yum info php(查看php的簡要資訊)
在包名和sumary資訊中搜尋指定的關鍵字:search KEYWORD ...
例如:yum search php (檢查簡要資訊中有php關鍵字的)
查詢指定檔案由哪個程式包安裝產生:provides|whatprovides /PATH/TO/SOMEFILE
例如:yum provides /etc/inittab (檢查inittab這個檔案由哪個程式包產生)
包組管理:
列出所有包組:grouplist
顯示指定包組詳情:groupinfo group1 [...]
安裝:groupinstall group1 [group2] [...]
卸載:groupremove group1 [group2] [...]
升級:groupupdate group1 [group2] [...]
注意:CentOS 7 之後可以直接用install,remove或update來管理組件組,組名前加(@)。
例如: yum install @"Server Platform Development" (安裝sever platform development包)
yum命令其他選項:
-y:自動回答為“yes”
--disablerepo=:臨時禁用設定檔中配置的倉庫
--enablerepo=:臨時啟用指定未啟用的某倉庫
--nogpgcheck:不做包校正
yum內建變數:
(1) $raleasever: 當前OS發行版的主要版本號;
例如,對CentOS 6.6 x86_64,主要版本號為6;
(2) $arch:平台
i386, i486
(3) $basearch: 基礎平台, 例如i686, i586, i486以及i386的基礎平台同為i386;
(4) $YUM0-$YUM9
例如:當前系統為CentOS 6.6 x86_64
baseurl=http://repo.magedu.com/centos/$releasever/$basearch (此寫法和下方寫法一樣效果)
http://repo.magedu.com/centos/6/x86_64
(CentOS) 程式安裝包管理:yum