anpcre Asked: 2009-07-26 10:02:01 +0800 CST2009-07-26 10:02:01 +0800 CST 2009-07-26 10:02:01 +0800 CST RPM 数据库损坏 772 前段时间我设法删除了 /var/lib/rpm 文件夹,该文件夹基本上包含有关系统中所有 rpm 的信息 提出的问题是我无法使用 yum 查询或升级 我做了像 rpm --rebuild 和 ll 这样提到的步骤,但它没有帮助 我很想知道一种方法可以恢复已安装 rpm 的数据库 我说好奇,因为没有它服务器也能正常运行!!! 希望没有人这样做......我为此失去了很多天的睡眠 提前感谢您阅读这篇文章并思考解决方案 问候 安瑞特 database rpm 4 个回答 Voted katriel 2009-07-26T10:29:00+08:002009-07-26T10:29:00+08:00 如果这个系统足够重要,你唯一的机会就是只重新安装到 db: rpm -Uvh --justdb <package> 您可以使用 /root/install.log 和 /var/log/yum.log 来获取已安装 RPM 的列表,或者,如果您有类似的系统,您可以从那里获取 RPM 列表。 也就是说,如果这个系统可能会停机,我建议重新安装是最好的方法。否则,请参阅上面的评论。 祝你好运 jemmille 2009-07-26T20:04:22+08:002009-07-26T20:04:22+08:00 编辑:我读错了——如果你删除了整个 /var/lib/rpm 目录,你会有点不知所措。 您说您已经完成了第一步,但供将来参考(以及其他任何遇到此问题的人) 删除/var/lib/rpm/__db.* 然后 rpmdb –rebuilddb 这没什么大不了的,你的系统没有被冲洗掉。只需运行上述命令,您就应该重新开始工作。 koenigdmj 2009-07-26T10:18:32+08:002009-07-26T10:18:32+08:00 如果您保留了备份,那么您可以恢复它。否则,您已经擦除了 RPM 数据库的唯一副本。(该rpm --rebuilddb命令会从其他目录中重建该目录中的一些文件。)您的系统基本上已经被水洗了。 Manuel Faux 2009-07-26T10:25:47+08:002009-07-26T10:25:47+08:00 我从未尝试过,但您可以尝试设置一个新的空 RPM 数据库(从全新安装复制?)并在当前安装的版本中重新安装所有当前安装的软件包。您可以查看您的 rpm(或者可能是 yum,如果您正在使用它)日志来确定当前安装的软件包。
如果这个系统足够重要,你唯一的机会就是只重新安装到 db:
您可以使用 /root/install.log 和 /var/log/yum.log 来获取已安装 RPM 的列表,或者,如果您有类似的系统,您可以从那里获取 RPM 列表。
也就是说,如果这个系统可能会停机,我建议重新安装是最好的方法。否则,请参阅上面的评论。
祝你好运
编辑:我读错了——如果你删除了整个 /var/lib/rpm 目录,你会有点不知所措。
您说您已经完成了第一步,但供将来参考(以及其他任何遇到此问题的人)
删除
/var/lib/rpm/__db.*
然后
rpmdb –rebuilddb
这没什么大不了的,你的系统没有被冲洗掉。只需运行上述命令,您就应该重新开始工作。
如果您保留了备份,那么您可以恢复它。否则,您已经擦除了 RPM 数据库的唯一副本。(该
rpm --rebuilddb
命令会从其他目录中重建该目录中的一些文件。)您的系统基本上已经被水洗了。我从未尝试过,但您可以尝试设置一个新的空 RPM 数据库(从全新安装复制?)并在当前安装的版本中重新安装所有当前安装的软件包。您可以查看您的 rpm(或者可能是 yum,如果您正在使用它)日志来确定当前安装的软件包。