所在的文件/var对系统至关重要。例如,/var/mail或/var/spool/mail包含用户的电子邮件;与删除邻居邮箱中的火一样,删除删除的内容最多。只是其中某些子目录中/var包含或多或少/var/log具有/var/cache临时性的文件:在中登录文件,通常可以在其中重新创建的缓存,在中的临时文件(在使用时不要删除这些文件!)/var/tmp。
数据输入/var/lib可能非常关键。例如,/var/lib/mysql默认情况下,通常将MySQL配置为在默认情况下将其数据库存储在其中:如果删除它,则会擦除数据库。Dpkg也将自己的数据库放在下面/var/lib。/var/lib/dpkg/status是一个。
/var/lib/dpkg/status包含有关已安装软件包的信息。如果删除了该文件,则应从备份中将其还原。如果您的备份不是最新的,请在/var/log/apt和中检查最近软件包操作的日志/var/log/dpkg.log。您需要先创建该文件,然后dpkg才能使用。
/var/lib/dpkg/available根据从Internet下载的数据构建。apt-get update应该重建它。
/var/lib/dpkg/info包含Debian软件包随附的文件。您可以简单地通过重新安装软件包来还原这些文件。当然,您将需要为此安装软件包的列表。如果您已还原/var/lib/dpkg/status,则可以从那里提取软件包列表。
apt-get install --reinstall $(</var/lib/dpkg/status sed -n 's/^Package://p')
如果丢失了/var/lib/dpkg/status,则可以通过创建一个空文件然后apt-get install --reinstall在软件包列表中运行来重新创建它。/var/lib/apt/extended_states至少还保存了软件包列表的一个地方是,至少在您仅使用APT安装软件包(而不是dpkg直接安装)的情况下-使用该文件而不是/var/lib/dpkg/status上面的int命令。如果您也删除了它,则可以使用来重建软件包的大致列表$(cd /usr/share/doc && ls),因为大多数软件包都在中创建了一个条目/usr/share/doc。可能有一些例外。
不要寻求有关此系统上软件包管理的任何帮助。从删除系统关键文件中恢复并不是一门精确的科学。如果无法从备份还原,则应尽快安装新的干净系统。
/var/lib/dpkg/info也很重要。您误解了FHS和AFAIK,唯一的恢复路径是(a)从备份还原或(b)重新安装。