我正在运行yum check-update
,它在输出两行之后就冻结了:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
我不确定发生了什么。我记得用 yum 做的最后一件事是yum update
查看 CentOS yum 存储库之一,但我没有做任何更改。
有什么建议可以修复 yum 吗?
答案1
您可能遇到了 DNS 问题。请尝试确保您可以在本地解析 DNS 记录:
nslookup google.com
如果您从该命令中返回 IP,则 DNS 应该没问题。然后尝试删除 fastestmirror 缓存并重新运行 yum 命令:
rm -f /var/cache/yum/timedhosts.txt
答案2
这一切对我来说都不起作用。
使用 CentOS 和 yum。yum 挂起时没有出现错误消息,至少看起来是这样。按Ctrl+C不起作用(一次又一次地按它才有效)。
需要检查几件事: - 存储库是否正常? - 网络是否正常? - yum 和 rpm 数据库是否正常?
因此,首先从简单的事情开始——清理数据库:
rm -f /var/lib/rpm/__*
rpm --rebuilddb -v -v
yum clean all
如果这不起作用,您可以在以下位置设置 yum 的调试级别、错误级别和超时/etc/yum.conf
:
debuglevel=1
errorlevel=1
timeout=1
超时时间标准为 30 秒。因此,如果存储库没有响应,错误会在 30 秒后出现。还可以尝试使用不带插件(如最快镜像和优先级)的 yum 和选项--noplugins
。现在再次启动 yum 应该会更快地为您提供更多信息。使用以下命令进行测试:
yum --verbose --noplugins info
你可能会得到如下结果:
Config time: 0.105
Yum Version: 3.2.22
Setting up Package Sacks
Loading mirror speeds from cached hostfile
* base: mirror.nl.leaseweb.net
* extras: mirror.nl.leaseweb.net
* ius: mirrors.ircam.fr
* rpmforge: mirror.nl.leaseweb.net
* updates: mirror.nl.leaseweb.net link-to-server-repository/repomd.xml: [Errno 4] IOError: urlopen error (97, 'Address family not supported by protocol')
Trying other mirror.
这表示无法从服务器接收任何信息。在您的 Web 浏览器中尝试 yum 显示的 URL(上面用 link-to-server-repository 表示)。从您的 yum 响应中复制并粘贴它,而不是从此帖子中!如果您获得列表,则说明存储库已在线。
如果浏览器出现错误,请尝试从 中删除该存储库/etc/yum.repos.d
。尝试使用 wget 获取服务器上的列表并粘贴 URL:
wget link-to-server-repository/repomd.xml
如果发生超时,则说明防火墙或代理设置存在问题。请尝试禁用防火墙。
如果您正在运行csf
(ConfigServer 安全和防火墙),则lfd
可以使用以下命令禁用 csf:
csf -x
再次尝试 yum,如果成功,你需要重新配置你的csf
。csf
使用以下命令再次启用:
csf -e
还要检查您的代理设置。您还可以尝试在 .repo 文件中将 https 更改为 http /etc/yum.repos.d/
。
答案3
就我的情况而言,是 RPM 数据库锁定文件拖延/var/lib/rpm/.dbenv.lock
导致 yum 命令挂起。删除该文件后,yum 即可再次使用。
答案4
遇到了类似的问题,原因是 yum lock 文件存在,/var/run/yum.pid
由于致命错误,之前的 yum 运行遗留了该文件。
我将其删除sudo rm /var/run/yum.pid
后问题就解决了。