在一台老旧的 CentOS 7 服务器上,突然某次断电,导致系统上的部分可执行程序不可用。为了让服务器上运行的服务程序正常,需要卸载并重装受影响的应用程序。
但是使用 yum 卸载软件时,出现如错误提示:Yum Error: Database Disk Image is Malformed。这说明 yum 的数据库文件损坏了,需要进行修复或者重建。
最简单的修复方法时清除 yum 的数据库缓存:
yum clean dbcache
执行这条语句后,再重试卸载或者安装命令,查看问题是否已经解决。如果问题依旧,那么需要更多步骤来修复问题:
# 删除所有缓存数据 yum clean all # 删除元数据 yum clean metadata # 删除数据库缓存文件 yum clean dbcache # 生成缓存 yum makecache # 重建rpm 数据库 rm -rf /var/lib/rpm/__db* rpm --rebuilddb
通过以上操作, yum 应该已经能正常工作了。
如果上述两种方法都还不行,那么建议放大招:使用新的事物历史记录:
yum history new
本人也是前两种方式都不管用,用最后一种方法解决的。
参考
1. How to Fix Yum Error: Database Disk Image is Malformed
2. Problem with yum; Error: database disk image is malformed