我的环境运行了很长时间,但突然断电了——当然,当时电源处于离线状态,需要更换电池。作为管理员,我知道已经有一段时间没有更新了,而且当时也没有执行任何管理任务。而且,我知道它完全正常,刚刚更换了主板,然后在恢复使用之前进行了全面检查。(哦,它还有 ECC 内存。)
电源恢复后重启,所有系统都立即重启,但备份服务器似乎没有运行cron @reboot
在其和主服务器之间安装磁盘的作业。
调查后,没有明显的原因导致该作业无法运行,因此我查看了应该发送的电子邮件 - 在这种情况下是发送给 root。因此,我启动了用于此目的的 Alpine,但没有alpine
?!我很困惑,我想我不知何故忘记安装 Alpine,所以我运行了$ dnf install alpine
... 这应该可以,但它立即返回而没有给出熟悉的“上次元数据过期检查”东西。这告诉我一定发生了一些重大的事情。...我在工作服务器上尝试过,它看起来很健康。
于是我尝试了yum
同样的方法它什么也没做结果。
于是我查看了文件。启动器dnf
与我未损坏的服务器上的启动器相同。
启动器是 python,所以我去寻找一种方法来确认 python 本身没有问题,并且它可以正常启动和运行,所以我怀疑特定的 python 库gnome-music
出了问题。yum
dnf
我发现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