Debian删除了/var/lib/dpkg/info/,有没有办法保存系统?

Wig*_*tag 3 linux debian aptitude dpkg

不小心删除了/var/lib/dpkg/info/,现在我在安装/删除包时遇到问题,它提示错误,导致找不到有关已安装包的信息。

有什么办法可以保存系统或者需要完全重装debian?:/

Ins*_*yte 11

您应该能够使用以下内容重新生成目录:

for i in $(dpkg -l|awk '/^ii/ {print $2}')
do
    apt-get --reinstall -y install $i
done
Run Code Online (Sandbox Code Playgroud)

该代码段应该做的是重新安装您已经安装的每个包。它还将升级一切。如果您不想这样做,则必须扩展脚本以安装您当前安装的特定版本,这不能保证工作,因为这些包可能不再存在于存储库中。

更多信息和稍微不同的方法:http : //people.adams.edu/~cdmiller/posts/Ubuntu-dpkg-recovery/

编辑:来自上述链接文章的重要提示:

由于 /var/lib/dpkg 中缺少更多内容,某些软件包仍无法正确安装。特别是“ucf”包对于内核和其他一些内核的正确安装非常重要。

如果没有 /var/lib/dpkg/info/ucf.templates,内核安装会产生以下错误:

failed to install/upgrade: User postinst hook script [/sbin/update-grub] exited with value 10

安装ucf:

apt-get --reinstall install ucf

这篇文章描述了从完全删除恢复所有/var/lib/dpkg,所以这个额外的步骤可能并不适用于您的情况。