Yum

yum是一个shell前端软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

yum --version 查看yum版本

[root@Kong ~]# yum --version
3.2.29
  Installed: rpm-4.8.0-55.el6.x86_64 at 2018-01-15 11:08
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2016-05-10 23:49
  Committed: Lubos Kardos <lkardos@redhat.com> at 2016-03-29

  Installed: yum-3.2.29-81.el6.centos.noarch at 2018-01-15 11:08
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2017-03-22 05:32
  Committed: Johnny Hughes <johnny@centos.org> at 2017-03-21

  Installed: yum-plugin-fastestmirror-1.1.30-40.el6.noarch at 2018-01-15 11:08
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2017-03-22 04:49
  Committed: Valentina Mukhamedzhanova <vmukhame@redhat.com> at 2016-11-25

使用方法: yum [选项] 命令

命令列表:

check 检查rpm数据库中的问题
check-update 检查是否有软件包更新
clean 删除缓存的数据
deplist 列出软件包的依赖关系
distribution-synchronization 将已安装的软件包同步到最新的可用版本
downgrade 降级软件包
erase 从系统中移除一个或多个软件包
groupinfo 显示组的详细信息
groupinstall 向系统中安装一组软件包
grouplist 列出可安装的组
groupremove 从系统中移除一组软件包
help 显示用法信息

history 显示或使用历史记录

[root@Kong ~]# yum history
已加载插件:fastestmirror, security
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    11 | root <root>              | 2018-08-30 17:51 | Install        |    4  <
    10 | root <root>              | 2018-08-27 18:25 | Install        |    1 > 
     9 | root <root>              | 2018-02-02 16:10 | Install        |    1  <
     8 | root <root>              | 2018-02-02 16:04 | Erase          |    1 > 
     7 | root <root>              | 2018-02-02 16:03 | Install        |    2   
     6 | root <root>              | 2018-01-16 00:53 | Install        |    3   
     5 | root <root>              | 2018-01-15 20:58 | Install        |    8   
     4 | root <root>              | 2018-01-15 20:57 | Install        |    2   
     3 | root <root>              | 2018-01-15 20:37 | Install        |    4   
     2 | root <root>              | 2018-01-15 19:05 | I, O, U        |  392 EE
     1 | 系统 <空>                | 2018-01-15 17:28 | Install        |  740   
history list
[root@Kong ~]# yum history list 8
已加载插件:fastestmirror, security
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     8 | root <root>              | 2018-02-02 16:04 | Erase          |    1   
history list

history undo ID 回滚操作
[root@localhost ~]# yum history undo 8

info 显示关于软件包或组的详细信息
install 向系统中安装一个或多个软件包
list 列出一个或一组软件包
load-transaction 从文件名加载已保存的事务
makecache 创建元数据缓存
provides 查找提供指定内容的软件包
reinstall 覆盖安装一个包
repolist 显示已配置的仓库
resolvedep 判断哪个包提供了指定的依赖
search 在软件包详细信息中搜索指定字符串
shell 运行交互式的 yum 外壳
update 更新系统中的一个或多个软件包
update-minimal 类似更新,但转到“最新”软件包匹配,修复了影响系统的问题
updateinfo 查看系统中有几个严重的更新
upgrade 更新软件包同时考虑软件包取代关系
version 显示版本

Update和upgrade的区别
它们都对软件进行升级,也都对内核进行升级。(重启进入新内核,uname -r查看)
唯一的区别是yum update不删除旧包,而yum upgrade删除旧包
在生产环境中最好使用yum update,防止因旧软件包依赖而出现问题。

选项:
-h, --help 显示帮助信息
-t, --tolerant 容忍错误
-C, --cacheonly 完全从系统缓存运行,不要更新缓存
-c [config file], --config=[config file] 配置文件路径
-R [minutes], --randomwait=[minutes] 命令最长等待时间
-d [debug level], --debuglevel=[debug level] 调试输出级别
--showduplicates 在 list/search 命令下,显示仓库里重复的条目。
-e [error level], --errorlevel=[error level] 错误输出级别
--rpmverbosity=[debug level name] 调试rpm的输出级别
-q, --quiet 不显示安装过程
-v, --verbose 详细操作
-y, --assumeyes 回答所有的问题为是
--assumeno 对所有问题都不回答
--version 显示 Yum 版本信息并退出
--installroot=[path] 设置目标根目录
--enablerepo=[repo] 启用一个或多个仓库(支持通配符)
--disablerepo=[repo] 禁用一个或多个仓库(支持通配符)
-x [package], --exclude=[package] 用全名或通配符排除软件包
--disableexcludes=[repo] 禁止从主配置,从仓库或者从任何位置排除
--obsoletes 升级时考虑软件包取代关系
--noplugins 禁用 Yum 插件
--nogpgcheck 禁用 gpg 签名检测
--disableplugin=[plugin] 禁用指定名称的插件
--enableplugin=[plugin] 按名称启用插件
--skip-broken 跳过有依赖问题的软件包
--color=COLOR 配置是否使用颜色
--releasever=RELEASEVER 在yum config和repo文件中设置$releasever的值
--downloadonly 不更新,只下载
--downloaddir=DLDIR 指定存储包的备用目录
--setopt=SETOPTS 设置任意配置和回购选项

插件选项:
--security 包括安全相关的包
--bugfixes 包括bugfix相关包
--cve=CVE 包括修复给定CVE所需的包
--bz=BZ 包括修复给定BZ所需的包
--sec-severity=SEVERITY 包含此严重性的安全相关软件包
--advisory=ADVISORY 包括修复给定建议所需的包

yum常用命令

列出资源库中所有可以安装或更新的rpm包
yum list
列出资源库中特定的可以安装或更新以及已经安装的rpm包
yum list perl           //列出名为perl  的包
yum list perl*         //列出perl 开头的包

列出资源库中所有可以更新的rpm包
yum list updates
 
列出已经安装的所有的rpm包 
yum list installed

列出已经安装的但是不包含在资源库中的rpm包
yum list extras

显示所有仓库
yum repolist all

显示可用的仓库
yum repolist enabled

显示禁用的仓库
yum repolist disabled

显示所有的程序包
yum list

显示可安装的程序包
yum list available

显示仓库中最近增加的程序包
yum list recent

安装 tree 程序
yum install tree

升级程序包
yum update tree

卸载程序包
yum remove tree或yum erase tree

查看程序包信息
yum info tree

清理本地缓存
yum clean all

#清除插件缓存
yum clean plugins

构建缓存
yum makecache

搜索yum search php

rpm

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

命令常用选项

安装rpm包
rpm -ivh xxx.rpm  #其中i表示安装,v表示显示安装过程,h表示显示进度
升级rpm包
rpm -Uvh xxx.rpm #U是update更新
删除软件包
rpm -e PACKAGENAME
rpm -e -nodeps PACKAGENAME #不考虑依赖包
rpm -e -allmatches PACKAGENAME #删除所有跟PACKAGENAME匹配的所有版本的包
查询软件包
rpm -q PACKAGENAME
rpm -qp xxx.rpm 获取当前目录下的rpm包相关信息
rpm -qa | less 列出所有已安装的软件包
rpm -qf /usr/sbin/httpd 查看某个文件属于哪个软件包,可以是普通文件或可执行文件,跟文件的绝对路径
rpm -qi PACKAGENAME 列出已安装的这个包的标准详细信息
rpm -ql PACKAGENAME 列出rpm包的文件内容
rpm -q -scripts kernel | less 列出已安装rpm包自带的安装前和安装后脚本
rpm -querytags | less 可以列出queryformat可以使用的所有变量从而组合成更强大的查询

用法: rpm [选项...]

查询/验证包选择选项:
-a, --all 查询/验证所有包
-f, --file 查询/验证包拥有的文件
-g, --group 查询/验证组中的包
-p, --package 查询/验证一个包文件
-W, --ftswalk 查询/验证来自TOP文件树的程序包
--pkgid 查询/验证包与包标识符
--hdrid 查询/验证包含标头标识符的包
--fileid 查询/验证包含文件标识符的包
--specfile 查询spec文件
--triggeredby 查询包触发的包
--whatrequires 查询/验证需要依赖的包
--whatprovides 查询/验证提供依赖关系的包
--nomanifest 不将非包文件作为清单处理

查询选项(使用-q或--query):
-c, --configfiles 列出所有配置文件
-d, --docfiles 列出所有文档文件
--dump 转储基本文件信息
-l, --list 列出包中的文件
--queryformat=QUERYFORMAT 使用以下查询格式
-s, --state 显示列出文件的状态

验证选项(使用-V或--verify):
--nofiledigest 不要验证文件的摘要
--nomd5 不要验证文件的摘要
--nofiles 不验证包中的文件
--nodeps 不验证包依赖项
--noscript 不执行验证脚本

文件树步行选项(使用--ftswalk):
--comfollow 按照命令行符号链接
--logical 合理的走路
--nochdir 不改变目录
--nostat 不获取统计信息
--physical 实际步行
--seedot 返回点和点
--xdev 不要跨设备
--whiteout 返回白化信息

签名选项:
--addsign 签署包裹(与--resign相同)
-K, --checksig 验证包签名
--delsign 删除包签名
--import 导入装甲公钥
--resign 签署包裹(与--addsign相同)
--nodigest 不验证包摘要
--nosignature 不验证包签名

数据库选项:
--initdb 初始化数据库
--rebuilddb 从已安装的包标头重建数据库反转列表

安装/升级/删除选项:
--aid 将建议的包添加到事务中
--allfiles 安装所有文件,甚至可能跳过的配置
--allmatches 删除所有与<package>匹配的包(如果<package>指定了多个包,通常会生成错误)
--badreloc 在非可重定位包中重定位文件
-e, --erase=<package>+ 擦除(卸载)包
--excludedocs 不要安装文档
--excludepath=<path> 跳过带有前导组件<path>的文件
--fileconflicts 检测包之间的文件冲突
--force 强制安装

-F, --freshen=<packagefile>+ 升级包(如果已安装)
-h, --hash 打印哈希标记作为软件包安装(适用于-v)
--ignorearch 不验证包体系结构
--ignoreos 不验证包操作系统
--ignoresize 安装前不要检查磁盘空间
-i, --install 安装包
--justdb 更新数据库,但不要修改文件系统
--nodeps 不验证包依赖关系
--nofiledigest 不要验证文件的摘要
--nomd5 不验证文件摘要(已废弃)
--nocontexts 不要安装文件安全上下文
--noorder 不要重新排序包安装以满足依赖性
--nosuggest 不建议缺少依赖性解决方案
--noscripts 不执行包scriptlet
--notriggers 不执行此包触发的任何scriptlet

--oldpackage 升级到旧版本的软件包(--force on upgrats会自动执行此操作)
--percent 包安装时打印百分比
--prefix=<dir> 如果可重定位,则将程序包重定位到<dir>
--relocate=<old>=<new> 将文件从路径<old>重定位到<new>
--replacefiles 忽略包之间的文件冲突
--replacepkgs 如果包已经存在,请重新安装
--test 不要安装,但要告诉它是否可行
-U, --upgrade=<packagefile>+ 升级包

所有rpm模式和可执行文件的常用选项:
-D, --define='MACRO EXPR' 用值EXPR定义MACRO
-E, --eval='EXPR' 打印EXPR的宏扩展
--macros=<FILE:...> 读取<FILE:...>而不是默认文件
--nodigest 不验证包摘要
--nosignature 不验证包签名
--rcfile=<FILE:...> 读取<FILE:...>而不是默认文件
-r, --root=ROOT 使用ROOT作为顶级目录(默认值:“/”)
--querytags 显示已知的查询标签
--showrc 显示最终的rpmrc和宏配置
--quiet 提供较少的详细输出
-v, --verbose 提供更详细的输出
--version 打显示使用的rpm版本

通过popt alias / exec实现的选项:
--scripts 从包中列出安装/擦除scriptlet
--setperms 设置包中文件的权限
--setugids 设置包中文件的用户/组所有权
--conflicts 列出与此包冲突的功能
--obsoletes 列出通过安装此软件包删除的其他软件包
--provides 列出此程序包提供的功能
--requires 列出包所需的功能
--info 从包中列出描述性信息
--changelog 列出此包的更改日志
--xml 列出xml中的元数据
--triggers 列表从包中触发scriptlet
--last 按安装时间列出软件包,最近一次
--dupes 列出重复的包
--filesbypkg 列出每个包中的所有文件

--fileclass 列出带有类的文件名
--filecolor 列出带颜色的文件名
--fscontext 列出文件系统中带有安全上下文的文件名
--fileprovide 列出提供的文件名
--filerequire 列出需要的文件名
--filecaps 列出具有POSIX1.e功能的文件名

帮助选项:
-?, --help 显示帮助信息
--usage 显示简要用法信息