系統版本:
[root@centos71d1 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@centos71d1 ~]# uname -r
3.10.0-229.el7.x86_64
yum repository:
存儲了衆多rpm包,以及包相關的元數據文件(放置於特定目錄下:repodata)
yum客戶端配置文件:/etc/yum.conf
: 爲所有repo提供公共配置/etc/yum.repos.d/*.repo
: 爲repo的指向提供配置
yum客戶端repo配置文件指向的定義:
[repositoryID]
name=name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
#roundrobin: 默認值,意爲隨機挑選
#priority: 優先級,即從上往下,第一個優先級最高
cost=#
#默認爲1000
yum客戶端repo配置文件中的可用變量:
$releasever
: 當前OS的發行版的主版本號,如CentOS 6或7$arch
: 平臺,如i386或x86_64$basearch
: 基礎平臺,386、486、586、686的基礎平臺都是386$YUM0
-$YUM9
: 自定義變量
yum命令語法:
yum [options] [command] [package ...]
[options]
- --nogpgcheck: 禁用gpg check
- -y: 自動回答“yes”
- -q: 靜默模式
- --disablerepo=repoidglob: 臨時禁用此處指定的repo
- --enablerepo=repoidglob: 臨時啓用此處指定的repo
- --noplugins: 禁用所有插件
[command]
- 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] [...]
- localupdate rpmfile1 [rpmfile2] [...]
- 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]
- check
- help [command]
顯示倉庫列表:
yum repolist [all|enabled|disabled]
示例:
[root@centos71d1 ~]# yum repolist all
repo id repo name status
C7.0.1406-base/x86_64 CentOS-7.0.1406 - Base disabled
!base/7/x86_64 CentOS-7 - Base enabled: 9,911
....
#顯示禁用的和啓用的軟件倉庫
顯示程序包:
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
示例:
[root@centos71d1 ~]# yum list | less
bash.x86_64 4.2.46-12.el7 @anaconda
bash-completion.noarch 1:2.1-6.el7 @base
bash-completion-extras.noarch 1:2.1-11.el7 @epel
....
#顯示程序包,@anaconda表示安裝系統時,就已安裝好
[root@centos71d1 ~]# yum list installed bash
#顯示名稱中含有bash字符串的已安裝的程序包
[root@centos71d1 ~]# yum list updates xz
#顯示已安裝的程序包中,名稱含有xz的更新包
安裝程序包:
yum install package1 [package2] [...]
yum reinstall package1 [package2] [...]
“yum reinstall”類似於“rpm -ivh --replacepkgs”,表示重新安裝,覆蓋安裝
示例:
[root@centos71d1 ~]# yum -y install gcc
#安裝gcc,“-y”表示自動回答“yes”
升級程序包:
yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...]
“yum update”類似於“rpm -Uvh”,表示升級
“yum downgrade”類似於“rpm -Uvh --oldpackage”,表示降級
檢查可用升級:
yum check-update
示例:
[root@centos71d1 ~]# yum check-update
功能類似於 [root@centos71d1 ~]# yum list updates
[root@centos71d1 ~]# yum check-update tar
tar.x86_64 2:1.26-34.el7 base
....
#檢查tar的升級包
[root@centos71d1 ~]# yum list installed tar
tar.x86_64 2:1.26-29.el7 @anaconda
....
#查看當前系統中的tar版本
[root@centos71d1 ~]# yum -y update tar
#升級tar
卸載程序包:
yum remove | erase package1 [package2] [...]
示例:
[root@centos71d1 ~]# yum remove cpp
#卸載cpp,默認會將依賴cpp的gcc一同卸載
查看程序包information:
yum info [...]
示例:
[root@centos71n1 ~]# yum info gcc
類似於 [root@centos71n1 ~]# rpm -qi gcc
#“yum info gcc”查詢的是線上軟件倉庫的程序包信息;“rpm -qi gcc”查詢本地已經安裝的程序包的信息
查看指定的特性(可以是某文件)是由哪個程序包所提供:
yum provides | whatprovides feature1 [feature2] [...]
示例:
[root@centos71n1 ~]# yum provides /bin/ls
#查看ls這個文件由哪個程序包提供,類似於rpm -qf命令
清理本地緩存:
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
構建緩存:
yum makecache
搜索:
yum search string1 [string2] [...]
以指定的關鍵字搜索程序包名及summary信息
示例:
[root@centos71n1 ~]# yum search bash
#搜索含有bash字符串的程序包或程序包概要信息
查看指定包所依賴的capabilities:
yum deplist package1 [package2] [...]
示例:
[root@centos71n1 ~]# yum deplist gcc
#查看gcc程序包依賴於哪些功能特性,和對應的程序包
查看yum事務歷史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
示例:
[root@centos71n1 ~]# yum -y remove cpp
[root@centos71n1 ~]# yum history
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
5 | root <root> | 2018-07-12 17:42 | Erase | 2
#查詢yum事務記錄,卸載了兩個程序包
[root@centos71n1 ~]# yum history summary
#查看yum事務摘要記錄
[root@centos71n1 ~]# yum history packages-list gcc
#查詢gcc程序包的相關yum事務記錄
安裝或升級本地程序包:
* yum localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)* yum localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
* 在新版本的yum中,可直接使用install和update,只有在較老的版本中,才需要使用localinstall和localupdate
包組管理相關命令:
* yum groupinstall group1 [group2] [...]
* yum groupupdate group1 [group2] [...]
* yum grouplist [hidden] [groupwildcard] [...]
* yum groupremove group1 [group2] [...]
* yum groupinfo group1 [...]
示例:
[root@centos71n1 ~]# yum grouplist
#顯示包組
[root@centos71n1 ~]# yum groupinstall "Development Tools"
#安裝包組“Development Tools”
[root@centos71n1 ~]# yum groupinfo "Development Tools"
#查看包組“Development Tools”的信息