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 .

3. 再次尝试排除网络问题

查看 /etc/yum.repos.d/ 里面 url 地址, 譬如 url 地址为:

http://abc.example.com

执行命令:

telnet abc.example.com 80

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

telnet abc.example.com 443

看是否正常.

4. 清除缓存重试

最后如果上述都没有问题, 则尝试执行:

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 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: 还有其他疑难杂症, 你可以尝试访问下述链接来寻求答案

猜你喜欢

转载自blog.csdn.net/Add_a_cat/article/details/89323080