断电重启后 DNF 和 YUM 都停止工作,什么都不做,甚至不检查元数据

断电重启后 DNF 和 YUM 都停止工作,什么都不做,甚至不检查元数据

我的环境运行了很长时间,但突然断电了——当然,当时电源处于离线状态,需要更换电池。作为管理员,我知道已经有一段时间没有更新了,而且当时也没有执行任何管理任务。而且,我知道它完全正常,刚刚更换了主板,然后在恢复使用之前进行了全面检查。(哦,它还有 ECC 内存。)

电源恢复后重启,所有系统都立即重启,但备份服务器似乎没有运行cron @reboot在其和主服务器之间安装磁盘的作业。

调查后,没有明显的原因导致该作业无法运行,因此我查看了应该发送的电子邮件 - 在这种情况下是发送给 root。因此,我启动了用于此目的的 Alpine,但没有alpine?!我很困惑,我想我不知何故忘记安装 Alpine,所以我运行了$ dnf install alpine... 这应该可以,但它立即返回而没有给出熟悉的“上次元数据过期检查”东西。这告诉我一定发生了一些重大的事情。...我在工作服务器上尝试过,它看起来很健康。

于是我尝试了yum同样的方法它什么也没做结果。

于是我查看了文件。启动器dnf与我未损坏的服务器上的启动器相同。

启动器是 python,所以我去寻找一种方法来确认 python 本身没有问题,并且它可以正常启动和运行,所以我怀疑特定的 python 库gnome-music出了问题。yumdnf

我发现rpm文件仍然在我的机器上的 /var/cache 中,但是当我尝试用 重新安装时rpm,到目前为止我尝试的所有方法都因依赖性问题而失败,包括如下结构$ rpm -Uvh -p /var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/dnf-*.rpm

以下是 rpm 文件:

/var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/dnf-plugins-core-4.0.18-1.fc32.noarch.rpm
/var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/python3-dnf-plugins-core-4.0.18-1.fc32.noarch.rpm
/var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/python3-libdnf-0.55.2-1.fc32.x86_64.rpm
/var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/python3-dnf-4.5.2-1.fc32.noarch.rpm
/var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/libdnf-0.55.2-1.fc32.x86_64.rpm
/var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/dnf-data-4.5.2-1.fc32.noarch.rpm
/var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/dnf-4.5.2-1.fc32.noarch.rpm

显然,这是一个 Fedora Core 32 安装。...我想也许我能够摆脱这个问题,如果我只知道如何rpm重新安装所有这些软件包 -也许我只是做错了!

任何帮助均感激不尽。

(请注意,这篇文章错误地发布在了 Stack Exchange 上,而我应该把它放在这里 - 我没有像在 Stack Overflow 上那样的权限,无法在各个场所之间迁移。)

答案1

在花费了大量时间尝试解决这个问题却徒劳无功之后,我偶然发现了原因,这要归功于 Bash 使用的配色方案!

我刚好执行了一条ls -l命令/var,然后发现了一些不应该出现的红色... 由于多种因素,部分内容/var被移到了另一个驱动器,并且链接不知何故/var/log被损坏了。我重新创建了链接,现在一切都好了!

原因是, 我的看法,一个错误因为未能报告问题的实际原因,因为作为一名程序员,我总是检查哪怕是最基本的事情,并在日志和命令行用户中报告错误。如果由于任何形式的磁盘 I/O 错误导致硬故障,请告诉用户您正在尝试做什么!...是的,您可能会争辩说,无论如何我都应该去查看系统日志文件,但老实说,我从来没有想到过dnf/yum不会向用户终端报告,或者在日志文件中找不到电源故障本身的任何内容。

我想我很快就会报告一个错误!

同时,在 stack exchange 上,我收到了一条评论,它可能会帮助其他遇到类似问题但原因不同的人:

sudo rpm --reinstall /var/cache/PackageKit/32/metadata/updates-32-x86_64/packages/*rpm.如果没有帮助,请尝试跑步dnf clean all。 – Artem S. Tashkinov

相关内容