Q:为什么机器上的 yum 不能用了?
-
首先排除本地配置问题 检查 /etc/yum.repos.d/ 目录下是否含有相关的 *.repo 文件
-
其次尝试排除DNS问题 查看 /etc/yum.repos.d/ 里面 url 地址, 譬如 url 地址为
http://mirror.aliyun.com
执行命令:
ping mirror.aliyun.com
查看能否解析出 ip .
- 再次尝试排除网络问题 查看 /etc/yum.repos.d/ 里面 url 地址, 譬如 url 地址为:
http://abc.example.com 执行命令:
telnet abc.example.com 80
查看是否正常, 若 url 地址为 https 服务, 则执行命令:
telnet abc.example.com 443
看是否正常.
- 清除缓存重试 最后如果上述都没有问题, 则尝试执行:
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