简介:
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum配置文件:
主配置文件:/etc/yum.conf (对所有yum仓库都有效)
各仓库的定义:/etc/yum.repos.d/*.repo (仅对自己仓库生效,优先级大于主配置文件。)
如下,我们自己创建一个yum库:
[testrepo]:代表仓库唯一标识ID
name:当前仓库简要介绍信息
baseurl:仓库的URL地址(ftp | http | 本地目录)
gpgcheck:是否校验包(1是 | 0否)
enabled:仓库是否可用
yum命令:
yum [options] [command] [package …]
command is one of:
* 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] […]
(maintained for legacy reasons only – use install)
* localupdate rpmfile1 [rpmfile2] […]
(maintained for legacy reasons only – use update)
* 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]
* load-transaction [txfile]
* check
* help [command]
介绍几个常用参数:
仓库管理:
repolist: 列出已经配置的所有可用仓库
repolist [all|enabled|disabled]
缓存管理:
clean:清理缓存
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
makecache: 缓存创建
自动连接至每一个可用仓库,下载其元数据,将其创建为缓存
程序包查看:
yum list [all | glob_exp1] [glob_exp2] […]
支持使用通配符,例如:yum list php* –查看php开头的包
yum list {available|updates|installed|extras|obsoletes} [glob_exp1] […]
条件查找,查看程序包,例如:available(有效的程序包),installed(已安装的程序包)
grouplist [hidden] [groupwildcard] […]
程序包安装:install package1 [package2] […]
注意:
只需要提供包名;
如果某包有在不同仓库中有多个不同版本,默认会安装最新版本;
如果要安装指定版本:install PACKAGE-VERSION …
重新安装(覆盖安装)reinstall package1 [package2] […]
程序包升级:update [package1] [package2] […]
程序包降级:downgrade package1 [package2] […]
检查有哪些升级可用:check-update
程序包卸载:
remove | erase package1 [package2] […]
所有依赖于正卸载的程序包的程序包会被一并卸载;
程序包查询:
查询程序的相关简要信息:info PACKAGE …
例如:yum info php(查看php的简要信息)
在包名和sumary信息中搜索指定的关键字:search KEYWORD …
例如:yum search php (检查简要信息中有php关键字的)
查询指定文件由哪个程序包安装生成:provides|whatprovides /PATH/TO/SOMEFILE
例如:yum provides /etc/inittab (检查inittab这个文件由哪个程序包生成)
包组管理:
列出所有包组:grouplist
显示指定包组详情:groupinfo group1 […]
安装:groupinstall group1 [group2] […]
卸载:groupremove group1 [group2] […]
升级:groupupdate group1 [group2] […]
注意:CentOS 7 之后可以直接用install,remove或update来管理包组,组名前加(@)。
例如: yum install @”Server Platform Development” (安装sever platform development包)
yum命令其他选项:
-y:自动回答为“yes”
–disablerepo=:临时禁用配置文件中配置的仓库
–enablerepo=:临时启用指定未启用的某仓库
–nogpgcheck:不做包校验
yum内置变量:
(1) $raleasever: 当前OS发行版的主版本号;
例如,对CentOS 6.6 x86_64,主版本号为6;
(2) $arch:平台
i386, i486
(3) $basearch: 基础平台, 例如i686, i586, i486以及i386的基础平台同为i386;
(4) $YUM0-$YUM9
例如:当前系统为CentOS 6.6 x86_64
baseurl=http://repo.magedu.com/centos/$releasever/$basearch (此写法和下方写法一样效果)
http://repo.magedu.com/centos/6/x86_64