rpm 数据库丢失,如何处理?

rpm 数据库丢失,如何处理?

我完全丢失了 /var/lib 下的 rpm 目录,无法恢复。 (我知道我应该做什么...)我做了一个新的(rpm --initdb),但当然 rpm 和 yum 不再知道系统上有什么。有没有办法重新填充数据库,以便我可以再次执行 yum check-update 之类的操作并实际获得结果?或者这是一个失败的原因。如果是这样,该如何进行?

我正在运行 Centos Stream 版本 8。

感谢您的建议

答案1

  1. rpm您可以使用该包下载并安装centos-release-XX-XX.noarch.rpm
  2. find /usr /etc -type f -print0 | xargs -0 -P$(nproc) dnf --cacheonly whatprovides | sort -u > /tmp/packages.txt
  3. 您手动将生成的包下载到例如/tmp/packages
  4. cd /tmp/packages && rpm -ivh --noscripts --notriggers --justdb *rpm

你已经准备好了。

项目 N2 可能会很慢,有一个更快的方法,但它更复杂。

相关内容