所在的文件/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)重新安装。