首先排除本地配置问题
检查 /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
清除本地缓存来尝试修复.
yum 安装软件包的时候报:The requestd URL returned error: 404
一般是由于本地 cache 过期引起,解决办法:
yum clean all
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
如何禁掉 yum 的 plugin ?
执行 yum 命令时加上下述参数即可
yum --noplugins xxx
yum 卸载基础包时,把上层的依赖包也卸载掉了?
从 yum 的设计理念出发,这样操作是符合逻辑的,以减少系统中多余的软件,在yum系统中会提示删除基础包会导致上层包不能工作也需要删除,故执行前要慎重考虑影响。像 python, sqlite, db等这样的底层包切勿使用yum删除。 yum update升级时会不会升级底层包?
当指定了特定的包时就不会升级,仅升级指定的软件包。从网上下了个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校验,这样能够规避一些安全风险。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100496