如何恢复已删除的“dpkg”目录?

不幸的是我在删除锁时删除了dpkg目录。 我打错了

root@sam:~$ rm -r /var/lib/dpkg 

现在,当我尝试安装/卸载软件包时,它会向我显示以下错误。

 E: Could not open lock file /var/lib/dpkg/lock - open (2: No such file or directory) 

我现在应该怎么做?

root + rm + -r =灾难

那么你是什么谴责灭亡?

 ls -l /var/lib/dpkg/ total 9964 drwxr-xr-x 2 root root 4096 nov 28 11:18 alternatives -rw-r--r-- 1 root root 11 sep 18 14:08 arch -rw-r--r-- 1 root root 2573807 nov 28 11:18 available -rw-r--r-- 1 root root 2561322 nov 28 10:25 available-old -rw-r--r-- 1 root root 8 abr 24 2013 cmethopt -rw-r--r-- 1 root root 538 sep 25 17:24 diversions -rw-r--r-- 1 root root 457 sep 25 17:24 diversions-old drwxr-xr-x 2 root root 483328 nov 28 11:17 info -rw-r----- 1 root root 0 nov 28 11:18 lock drwxr-xr-x 2 root root 4096 mar 22 2013 parts -rw-r--r-- 1 root root 135 abr 24 2013 statoverride -rw-r--r-- 1 root root 2269113 nov 28 11:18 status -rw-r--r-- 1 root root 2268870 nov 28 11:18 status-old drwxr-xr-x 2 root root 4096 nov 28 11:18 triggers drwxr-xr-x 2 root root 4096 nov 28 11:18 updates 

你删除了5个目录,状态文件等。所以,让我们尝试修复这些东西。 首先,创建目录:

 sudo mkdir -p /var/lib/dpkg/{alternatives,info,parts,triggers,updates} 

恢复一些备份:

 sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status 

现在,让我们看看你的dpkg是否正常工作(开始祈祷):

 apt-get download dpkg sudo dpkg -i dpkg*.deb 

如果一切都“正常”,那么也要修复基本文件:

 apt-get download base-files sudo dpkg -i base-files*.deb 

现在尝试更新您的包列表等:

 dpkg --audit sudo apt-get update sudo apt-get check 

现在,让我们深呼吸。 唷。 执行ls -l /var/lib/dpkg并与上面的列表进行比较。 如果某个-old文件不存在,请不要担心它会在明天出现。

那么dpkg (Debian软件包管理系统)软件包提供了用于处理Debian软件包的安装和删除的低级基础架构。所以删除它不是一个好主意,你可以通过以下方式返回 –

使用wget下载文件:

 wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.16.1.2ubuntu7.2.tar.bz2 

在xxx文件夹中解压缩。

 cd xxx ./configure make sudo make install 

希望它会奏效。

从备份中恢复系统。 你确实备份了吗? 备份系统和数据对于处理此类(用户错误)和硬件故障等意外情况至关重要。 如果您未能创建此处讨论的备份,则可以尝试进行数据恢复。

将来我建议您定期备份以避免灾难性数据丢失。 我怀疑你会忘记,因为@Braiam说“ root + rm + -r =灾难

只需按照以下步骤操作,确保您可以恢复文件,至少apt-getdpkg可以正常工作。

 sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/ sudo mv /var/backups/dpkg.status.0 /var/backups/status sudo mkdir /var/lib/dpkg/updates 

在此测试之后是否可行。

 sudo apt-get install {Package-name} sudo dpkg -i {package_name} 

希望它有效。 如果不在下面评论。 请记住,在玩sudo + rm -rf要格外小心。