blank
blank
发布于 2019-08-07 / 508 阅读 / 0 评论 / 0 点赞

yum 常见问题分析总结

Q:为什么机器上的 yum 不能用了?

  1. 首先排除本地配置问题 检查 /etc/yum.repos.d/ 目录下是否含有相关的 *.repo 文件

  2. 其次尝试排除DNS问题 查看 /etc/yum.repos.d/ 里面 url 地址, 譬如 url 地址为

http://mirror.aliyun.com 

执行命令:

ping mirror.aliyun.com 

查看能否解析出 ip .

  1. 再次尝试排除网络问题 查看 /etc/yum.repos.d/ 里面 url 地址, 譬如 url 地址为:

http://abc.example.com 执行命令:

telnet abc.example.com 80

查看是否正常, 若 url 地址为 https 服务, 则执行命令:

telnet abc.example.com 443

看是否正常.

  1. 清除缓存重试 最后如果上述都没有问题, 则尝试执行:
yum clean all

清除本地缓存来尝试修复.

Q: yum 安装软件包的时候报:The requestd URL returned error: 404 一般是由于本地 cache 过期引起,解决办法:

yum clean all

Q:yum/rpm安装时卡死 常见的情况是rpmq过多导致的db死锁, strace会发现发生 futex FUTEX_WAIT, 那么可以判断程序在等待系统对文件解锁, 去排查相关的文件打开状况. 执行命令:

ps axu | grep rpm

可以看到大量的

/usr/lib/rpm/rpmq

解除死锁的办法是重建 db:

sudo rm -f /var/lib/rpm/__db*;rpm --rebuilddb

还有可能的情况是在

yum list/search/install

时发生 segmentation fault, 这通常是由于索引文件损毁造成的,可以尝试先删除目录

/var/cache/yum 下的文件,然后执行:

yum clear all && yum makecache 

Q: 如何禁掉 yum 的 plugin ? 执行 yum 命令时加上下述参数即可

yum --noplugins xxx

Q:yum 卸载基础包时,把上层的依赖包也卸载掉了? 从 yum 的设计理念出发,这样操作是符合逻辑的,以减少系统中多余的软件,在yum系统中会提示删除基础包会导致上层包不能工作也需要删除,故执行前要慎重考虑影响。像 python, sqlite, db等这样的底层包切勿使用yum删除。

Q: yum update升级时会不会升级底层包? 当指定了特定的包时就不会升级,仅升级指定的软件包。

Q:从网上下了个rpm, 一直安装不上,安装rpm包遇到错误。 错误信息如下:

error: esl-erlang_16.b.3-1~centos~6_amd64.rpm: Header V4 RSA/SHA1 signature: BAD, key ID a14f4fca

可以加上万能的取消校验选项:

rpm --nodigest --nosignature --nomd5 ... -ivh xxx.rpm

如果能获取到GPG Key文件的话,建议还是开启GPG校验,这样能够规避一些安全风险。

Q: 还有其他疑难杂症, 你可以尝试访问下述链接来寻求答案 http://yum.baseurl.org/wiki/Faq


评论