7.12 yum 命令使用指南及问题排查方法¶
安装¶
加个 -y
可以在安装包时代替用户自动响应 yes
$ yum install -y xxx
加个 --installroot=/usr/local/
指定将软件安装在 /usr/local
目录下,而不安装在默认路径下
$ yum install --installroot=/usr/local/ -y xxx
重新安装 == 卸载再安装
$ yum reinstall -y xxx
下载¶
只下载安装包
yumdownloader --destdir /home/wangbm/ perl-Sys-Virt.x86_64
下载安装包及其依赖包
yumdownloader --resolve --destdir /home/wangbm/ perl-Sys-Virt.x86_64
yumdownloader --resolve --destdir /home/test/ systemd-devel-219-62.el7_6.2.x86_64
查看¶
查看具体包的信息
$ yum info zabbix-agent
查看配置并启用的仓库中有哪些包,包括已安装和未安装的
$ yum list
查看有哪些包可以升级的
$ yum list updates
查询一个命令是由哪个包提供的
$ yum provides xxx
查询一个模块/共享库/文件是哪个包提供的
$ yum whatprovides xxx
列出所有的容器
$ yum repolist all
查询某个仓库下的所有包
$ yum repo-pkgs <repo-name> list
查看一个包的所有依赖项
$ yum deplist httpd
升级¶
$ yum update xxx
删除¶
$ yum remove -y xxx
分组¶
查看分组
$ yum grouplist
查看分组信息
$ yum groupinfo <group_name>
安装一整组软件
$ yum groupinstall <group_name>
删除某个组
$ yum groupremove <group_name>
历史¶
$ yum history
其他¶
执行事务
$ yum load-transaction /tmp/yum_save_tx.xxx.n0EVjx.yumtx
生成元数据缓存
$ yum makecache
进入交互式模式
$ yum shell
选项¶
-h, - help显示此帮助消息并退出
-t, - 容忍错误
-C,--cacheonly完全从系统缓存运行,不更新缓存
-q, - 安静的操作
-v, - verbose详细操作
-y, - assumeyes对所有问题都回答是
--assumeno对所有问题都回答否
--version显示Yum版本并退出
--installroot = [path]设置安装root
--obsoletes在更新期间启用过时处理
--noplugins禁用Yum插件
--nogpgcheck禁用gpg签名检查
-skip-broken 跳过没有解决问题的包
--color = COLOR控制是否使用颜色
--downloadonly不更新,只需下载
--downloaddir = DLDIR指定存储包的备用目录
--setopt = SETOPTS设置任意配置和repo选项
--bugfix在更新中包含bugfix相关包
--security在更新中包含安全相关的包
--advisory = ADVS, - advisories = ADVS 更新包括修复给定建议所需的包
--bzs = BZS 更新包括修复给定BZ所需的包
--cves = CVES 更新包括修复给定CVE所需的包
--sec-severity = SEVS, - secseverity = SEVS
配置文件位置
-c [config file], - config = [config file]
最大命令等待时间
-R [minute], - randomwait = [minute]
调试输出级别
-d [debug level], - debug level = [debug level]
在repos中,在list / search命令中显示重复项
--showduplicates
错误输出级别
-e [error level], - errorlevel = [error level]
调试rpm的输出级别
--rpmverbosity = [debug level name]
启用/禁用仓库(允许使用通配符)
--enablerepo = [repo]
--disablerepo = [repo]
按名称或glob排除包
-x [package], - exclude = [package]
禁用从main,repo或所有内容的排除
--disableexcludes = [plugin]
禁用包含repo或所有内容的includepkgs
--disableincludes = [plugin]
按名称禁用插件
--disableplugin = [plugin]
按名称启用插件
--enableplugin = [plugin]
在yum config和repo文件中设置$ releasever的值
--releasever = RELEASEVER
yum-utils 使用
$ yum install yum-utils
# 清理未完成的yum事务
$ yum-complete-transaction --cleanup-only
# 清除可能存在的重复包
$ package-cleanup --dupes
# 清除可能存在的损坏包
$ package-cleanup --problems
glibc-common-2.17-196.el7_4.2.x86_64 has missing requires of glibc = ('0', '2.17', '196.el7_4.2')
# 将上面列出的包卸载
$ rpm -e glibc-common-2.17-196.el7_4.2.x86_64
问题排查记录¶
查找一个 so 文件是属于哪个 rpm 包
经常在安装一个包的时候,会报如下的错误,找不到某 so 文件
如果是缺一个包,那我们安装它就行了,缺 so 文件,那咋弄?
首先我们要找到有这个 so 文件的机器,然后可以用 yum 提供的工具来获取其所属的 rpm 包 ,然后安装这个包即可。
$ yum whatprovides /usr/lib64/libpcap.so.1
...
14:libpcap-1.5.3-8.el7.x86_64 : A system-independent interface for user-level packet capture
Repo : @anaconda
Matched from:
Filename : /usr/lib64/libpcap.so.1.5.3
$ yum install libpcap
查看某个包的安装历史
# 查该包所有的安装历史
$ yum history list python-nova-tests
# 只能查已安装的包的安装日期。截图中,之所以存在两个包,是因为该机器上存在两个版本的包
$ rpm -qa --last | grep python-nova-tests
查看安装某个包是如何安装的,从哪安装
$ yumdb info python-nova-tests