我dnf update
在 CentOS 8 机器上运行 a 并且它卡住了,所以我在半小时左右后终止了该进程。现在似乎没有任何效果,甚至sudo
无法访问。我已经重启了服务器,但这些基本命令仍然不起作用。
再次运行dnf update
显示名称解析错误:
Errors during downloading metadata for repository 'AppStream':
— Curl error (6): Couldn't resolve host name for https://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock
[Could not resolve host: mirrorlist.centos.org: Unknown error]
Error: Failed to download metadata for repo 'AppStream':
Cannot prepare internal mirror list: Curl error (6): Couldn't resolve host
name for http://mirrorlist.centos.org/release=8&arch=x86_64&repo=AppStream&infra=stock
[Could not resolve host: mirrorlist.centos.org; Unknown error]
我现在该怎么办?
所以是的,您的系统处于不一致的状态。将来,如果
dnf
冻结,请尝试切换到另一个终端并查看您的系统日志。用硬关机来中断它总是一个坏主意。在最坏的情况下,您可以发出 akill
然后再次尝试交易。您可以在此处尝试一些操作,但请在继续之前备份此系统。如果这些选项都不起作用,您可能会陷入比以前更加破碎的状态。弄清楚究竟是什么坏了,艺术比科学更重要,尤其是因为每一个破损都会有所不同。
您可以做的最快和最不容易出错的事情是关闭所有基本数据并进行完全重新安装。请确定是否可以很好地利用您的时间来解决此问题。
成为根。
获取此系统上所有重复包的列表。
dnf repoquery --quiet --duplicated --cacheonly --latest-limit 1 --qf "%{name}.%{arch}" > dupepackages.list
尝试删除任何重复的包。
dnf remove $(dnf repoquery --duplicated --cacheonly --latest-limit -1 -q)
以 root 身份运行。这将删除系统上每个软件包的所有最新版本,但最新版本除外。您可能会在此处收到“受保护的包”错误,如果是,请使用--disableplugin=protected_packages
. 这是可怕的一点。dnf
现在尝试重新安装骗子 - 这会将所有内容升级到在中断之前尝试安装的较新版本。dnf reinstall -C $(cat dupepackages.list)
(我愿意打赌你的 dnf 在这一点上开始表现正确)如果可行,请立即重新运行导致整个混乱局面的升级。随着骗子的消失,
dnf
依赖性rpm
解决方案应该开始并让您恢复稳定状态。