1. 程式人生 > >軟件包管理之yum

軟件包管理之yum

hist repos 關鍵字 信息 only inf page 靜默 priority

YUM(YellowdogUpdate Modifier)是rpm的前端程序,可解決軟件包相關依賴性,可在多個庫之間定位軟件包

yum倉庫(yum repository)

yum repository存儲了眾多rpm包,以及包的相關的元數據文件(放置於特定目錄repodata下)

yum源可以來源於多種文件服務器

  • http://
  • https://
  • ftp://
  • file://

註意:yum 源的路徑一定是 repodata目錄的父目錄

yum源配置

/etc/yum.conf:為所有倉庫提供公共配置

[main]
cachedir=/var/cache/yum/$basearch/$releasever   # 緩存文件,baseserach是基礎架構,如`x86_64`,releaserver是版本,如`7`
keepcache
=0 # 緩存源文件和安裝成功後的下載包是否保存 debuglevel=2 logfile=/var/log/yum.log # 日誌文件位置 exactarch=1 obsoletes=1 gpgcheck=1 # 是否進行gpg校驗,0為不校驗,1校驗 plugins=1 # 是否支持插件 installonly_limit=5 # 允許同時安裝幾個程序包 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

/etc/yum.repos.d/*.repo:為倉庫的指向提供配置

倉庫指向的定義

[repositoryID]  # 倉庫ID
name=Some name for this repository  # 倉庫名
baseurl=url://path/to/repository/   # 倉庫地址
enabled={1|0}      # 是否啟用
gpgcheck={1|0}     # 是否進行gpg校驗,默認值為1,即為校驗
gpgkey=URL         # 如果gpgcheck值為1,要給定gpgkey地址
enablegroups={1
|0} # 是否支持組 failovermethod={roundrobin|priority} # 倉庫的選取方法,roundrobin意為隨機挑選,默認;priority按順序訪問 cost= # 花費值,默認為1000

配置本地光盤 yum 源,阿裏雲 epel 源

[root@centos7 ~]# mkdir /media/cdrom
[root@centos7 ~]# mount -r /dev/cdrom /media/cdrom
[root@centos7 ~]# mkdir /etc/yum.repos.d/backup
[root@centos7 ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
[root@centos7 ~]# vim /etc/yum.repos.d/centos7.repo
    [cdrom]
    name=cdrom for centos7
    baseurl=file:///media/cdrom
    gpgcheck=0
    enabled=1

[epel]
name=epel for centos7
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
enabled=1

[root@centos7 ~]# yum repolist

yum命令

yum命令語法

yum [options] [command] [package ...]

yum命令行選項(命令行選項的優先級高於配置文件)

--nogpgcheck:禁止進行gpgcheck
-y: 自動回答為“yes”
-q:靜默模式
--disablerepo=repoidglob:臨時禁用此處指定的repo
--enablerepo=repoidglob:臨時啟用此處指定的repo
--noplugins:禁用所有插件

yum源列表

yum repolist [all|enabled|disabled]                          顯示倉庫列表
yum grouplist [hidden] [groupwildcard] [...]                 顯示包組
yum list {available|installed|updates} [glob_exp1] [...]     顯示包列表

yum安裝更新卸載

yum install package1 [package2] [...]           安裝包
yum install rpmfile1 [rpmfile2] [...]           安裝本地rpm包
yum groupinstall group1 [group2] [...]          安裝包組
yum reinstall package1 [package2] [...]         重新安裝包
yum check-update                                檢查可用升級
yum update [package1] [package2] [...]          升級包
yum downgrade package1 [package2] [...]         降級包
yum update rpmfile1 [rpmfile2] [...]            升級本地rpm包
yum groupupdate group1 [group2] [...]           升級包組
yum remove | erase package1 [package2] [...]    卸載包
yum groupremove group1 [group2] [...]           卸載包組

yum查詢搜索

yum info [...]                                           查看程序包信息
yum provides | whatprovides feature1 [feature2] [...]    查看指定的特性(可以是某文件)是由哪個程序包所提供
yum search string1 [string2] [...]                       以指定的關鍵字搜索程序包名及summary信息
yum deplistpackage1 [package2] [...]                     查看指定包所依賴的capabilities

yum緩存

yum makecache     構建緩存
yum clean all     清除緩存(不徹底的話 rm -rf /var/cache/yum

yum歷史

yum history            顯示yum操作歷史,是按照/var/log/yum.log進行的查找
yum history info 6     查看第六條信息
yum history undo 6     撤銷第六步,如果第六步是安裝,則執行此命令,將刪除第六步所安裝的程序,。如果第六步是卸載,那麽執行此命令,則進行安裝卸載掉的程序
yum history redo 6     重做第六步

軟件包管理之yum