yum命令詳解

系統版本:

[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”的信息

 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章