一、简介
如果你曾在为安装RPM程序包的时候,被其恼人的依赖关系而折磨得不像人形,那么RPM的前端工具yum就是你的救星。yum命令能够让系统管理人员提供交互的、自动化地管理RPM程序包。yum命令在接收到相应的指令后,能够从指定的服务器中自动下载RPM包并且安装,在安装的时候能够自动解决程序包的依赖关系,一次性地把程序包所依赖的程序包下载安装。
二、yum的配置文件
yum的配置文件有/etc/yum.conf 和目录/etc/yum.repos.d/下的以repo结尾的文件。
/etc/yum.conf文件为存放yum命令系统配置的文件,其内容为(#后面内容为相关解释):
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum下载的RPM包的缓存目录
keepcache=0 #是否保存缓存,0为不保存,1为保存
debuglevel=2 #调试级别(0-10),默认为2
logfile=/var/log/yum.log #yum的日志文件所在的位置
exactarch=1 #在更新的时候,是否允许更新不同版本的RPM包
obsoletes=1 #这是个update参数,相当于yum upgrade,允许更新被淘汰的RPM包;
gpgcheck=1 #是否进行GPG检查
plugins=1 #是否允许使用插件,0是不允许;
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
exclude=centos-release* #屏蔽不想更新的RPM包,可使用通配符,多个RPM包之间使用空格分离,相当于update的--exclude选项;
# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
在/etc/yum.repos.d/目录下存放着yum的repo文件,该类型文件通常定义了一个或多个软件仓库的明细内容,yum命令读取该类型文件来得知从哪里下载需要安装或升级的软件包。
repo文件中定义一个yum源的格式通常为:
[base]
name=Centos-7.0-Base
baseurl=http://mirror.centos.org/centos-7/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos-7/7/os/x86_64/RPM-GPG-KEY-CentOS-7
enabled=1
[base]:代表这个yum库的ID,唯一存在;
name:表示这个yum库的名字;
baseurl:表示一个yum库的URL来源地址;其支持多种路径格式,包括http://、ftp://、nfs://、file:///等;
gpgcheck:表示是否进行gpg检查,1为检查,0为不检查;
gpgkey:用于进行gpg检查的key的来源路径;
enable:是否启用该yum源,0表示禁用,1为启用;
三、yum命令的使用
1、命令格式:
yum [options] [command] [package ...]
yum命令其实与RPM命令类似,也为管理员提供了不同的功能命令,如安装、升级、卸载、查询等等。
2、通用选项options:
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:静默模式;
-x,--exclude=package:将某个包排除,支持通配符;
--nogpgcheck:不进行GPG签名检查;
--disablerepo=repoidglob:临时禁用此处指定的repo文件;
--enablerepo=repoidglob:临时启用此处指定的repo文件;
--noplugins:禁用所有插件;
3、功能命令command
install:安装RPM软件包;
clean:清理缓存信息;
reinstall:重新安装RPM软件包;
check-update:检查是否有可用的更新RPM软件包;
info:显示指定的RPM软件包的信息和汇总信息;
list:显示软件包的信息
remove | erase:卸载指定的RPM包,卸载时会把相关依赖包也一并卸载掉;
provides:查看指定的特性或文件是由什么程序包凹提供的;
clean [ packages | metadata | exppire-cache | rpmdb | plugins | all ] :清理本地缓存;
makecache:创建缓存;
search string1 string2:以指定的关键字搜索程序包及汇总信息;
deplist package1 package2:查看指定包的依赖关系;
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]:查看yum的历史信息;
repolist [all|enabled|disabled]:可以显示所有配置了的yum源,也可以分别显示可用的或不可用的yum源
groupinstall :安装一个组包;
groupupdate:更新一个组包;
grouplist:列出当前的组包;
groupremove:删除一个组包;
groupinfo:列出一个组包的详细信息;
update:更新相关的软件包;
四、使用案例
使用yum安装zsh:
[root@localhost ~]# yum install -y zsh
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 zsh.x86_64.0.5.0.2-28.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
=================================================================================================================================
Package 架构 版本 源 大小
=================================================================================================================================
正在安装:
zsh x86_64 5.0.2-28.el7 base 2.4 M
事务概要
=================================================================================================================================
安装 1 软件包
总下载量:2.4 M
安装大小:5.6 M
Downloading packages:
zsh-5.0.2-28.el7.x86_64.rpm | 2.4 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : zsh-5.0.2-28.el7.x86_64 1/1
验证中 : zsh-5.0.2-28.el7.x86_64 1/1
已安装:
zsh.x86_64 0:5.0.2-28.el7
完毕!
[root@localhost ~]#
查询vim功能是由哪个包提供的:
[root@localhost ~]# yum provides vim
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
2:vim-enhanced-7.4.160-2.el7.x86_64 : A version of the VIM editor which includes recent enhancements
源 :base
匹配来源:
提供 :vim = 7.4.160-2.el7
使用yum删除zsh软件:
[root@localhost ~]# yum -y remove zsh
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 zsh.x86_64.0.5.0.2-28.el7 将被 删除
--> 解决依赖关系完成
依赖关系解决
=================================================================================================================================
Package 架构 版本 源 大小
=================================================================================================================================
正在删除:
zsh x86_64 5.0.2-28.el7 @base 5.6 M
事务概要
=================================================================================================================================
移除 1 软件包
安装大小:5.6 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : zsh-5.0.2-28.el7.x86_64 1/1
验证中 : zsh-5.0.2-28.el7.x86_64 1/1
删除:
zsh.x86_64 0:5.0.2-28.el7
完毕!
创建yum缓存
[root@localhost ~]# yum makecache
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/other_db | 118 kB 00:00:00
(2/4): extras/7/x86_64/prestodelta | 128 kB 00:00:00
(3/4): updates/7/x86_64/filelists_db | 4.2 MB 00:00:01
(4/4): extras/7/x86_64/filelists_db | 702 kB 00:00:01
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
元数据缓存已建立
检查RPM软件包可用的更新:
[root@localhost ~]# yum check-update
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
alsa-tools-firmware.x86_64 1.1.0-1.el7 base
at.x86_64 3.1.13-22.el7_4.2 updates
authconfig.x86_64 6.2.8-30.el7 base
bash.x86_64 4.2.46-29.el7_4 updates
bind-libs.x86_64 32:9.9.4-51.el7_4.2 updates
bind-libs-lite.x86_64 32:9.9.4-51.el7_4.2 updates
bind-license.noarch 32:9.9.4-51.el7_4.2 updates
.....
显示与vim相关的RPM包:
[root@localhost ~]# yum list vim*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
已安装的软件包
vim-common.x86_64 2:7.4.160-2.el7 @base
vim-enhanced.x86_64 2:7.4.160-2.el7 @base
vim-filesystem.x86_64 2:7.4.160-2.el7 @base
vim-minimal.x86_64 2:7.4.160-1.el7 @anaconda
可安装的软件包
vim-X11.x86_64 2:7.4.160-2.el7 base
vim-minimal.x86_64 2:7.4.160-2.el7 base