YUM(Yellowdog Updater Modified)主要的功能是方便添加、删除和更新rpm软件包,同时解决软件包依存问题,更便于管理大量的系统更新问题。它可以同时配置多个仓库或叫资源库(repository),就是存放更新和依存的软件包的地方。

1. YUM Repository 仓库的配置

yum仓库有三种类别:

  • ftp://path

  • http://path

  • file:///path   file://用于本地仓库,/path为根目录下路径。


yum仓库可以通过配置/etc/yum.conf文件或/etc/yum.repos.d/下的.repo文件来实现。


yum的配置文件分为两部分:main 和repository

  • main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main,通常位于/etc/yum.conf 中

  • repository 部分定义了每个仓库服务器的具体配置,可以有一到多个,通常位于/etc/yum.repo.d 目录下的各文件中。


一般来说,许多Linux系统在发行版时已经配置了多个仓库或镜像提供全世界的软件升级之用。所以,理论上我们不需要处理任何配置值,只要能够连上 Internet ,就可以使用yum. 如CentOS:

软件包管理工具(2): YUM_yum

CentOS-Base.repo 是yum 网络源的配置文件

CentOS-Media.repo 是yum 本地源的配置文件


而当我们需要自己配置合适的仓库以获得更快的下载速度时,则可以通过下面的方法来自行配置。以搜狐镜像为例:

http://mirrors.sohu.com/centos/6/


连接到上述的网址后,可以看到里面有许多链接,那些链接就是搜狐镜像这个yum 服务器所提供的仓库了。如果用的是64位操作系统,再点进去可以看到

http://mirrors.sohu.com/centos/6/os/x86_64/

软件包管理工具(2): YUM_yum_02

注意repodata这个目录所在的位置,该目录就是分析 RPM 软件后所产生的软件属性相依数据放置处。因此,当寻找仓库所在网址时,最重要的就是该网址底下一定要有个名为 repodata 的目录存在,这个目录所在的位置,就是可以访问到yum仓库的位置。


现在可以通过创建或更改一个.repo文件来为本机CentOS系统配置yum仓库:

软件包管理工具(2): YUM_yum_03

  • [RepoID]:代表仓库的定义,中括号一定要存在,里面的名称则可以随意取,但不能重名。

  • name= 说明一下这个仓库的意义

  • baseurl= 仓库的实际网址

  • enabled={1|0} 仓库启用1,不启用0

  • gpgcheck={1|0}检查RPM 文件内的数字签名,1检查,0不检查

  • gpgkey= 数字签名的公钥档所在位置

  • cost= 定义优先级, 若另一.repo文件优先级为2000,则以高的为先。


2. YUM的常用命令

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


[option] 的主要的选项,包括有:

-y :当 yum 要等待使用者输入时,这个选项可以自动提供 yes 的回应;
--installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径


[command] 的主要的选项, 用于查询的包括有:


search keyword 用关键字查询;
list {all|installed|available|updates}列出目前 yum 所管理的所有|已安装|可安装|可更新的软件名称与版本;
info package_name: 获取软件包信息,类似 rpm -qai 的运行结果;
repolist [all|enabled|disabled] 查看系统中所有|启用|未启用的软件仓库
provides package_name:查询某文件属于哪个软件包


用于安装升级删除的包括有:

install package_name ...:安装单个或多个软件包
reinstall package_name ...:重新安装单个或多个软件包
check-updat:显示可升级的软件包
update package_name ...: 升级指定的软件包
update-to package_version: 更新到某指定版本
remove package_name ...: 删除制定的软件包,确认判定指定软件包的依存关系


其他还有:

clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]:清除下载后旧的包|元数据|过期缓存|rpm数据库|插件|所有。
Makecache: 手动制作缓存


群组功能:

grouplist:列出所有可使用的组件,例如 "Development tools"、"Server Platform Development" "Desktop Platform Development"为RHEL6和CentOS6的开发组件
groupinfo group_name: 查看该 group 内含的所有组件名;
groupinstall: 安装一整套的组件
groupremove:移除某个套件群组;