丢失/删除dpkg(Debian的包管理器)。 我怎样才能找回来?

操作系统:Ubuntu 12.04

意外删除了dpkg 。 现在,无法安装软件包。 因此,需要安装软件包的dpkg安装程序。

下载与发行版版本互补的软件包。 https://launchpad.net/ubuntu/+source/dpkg/1.16.1.2ubuntu7

解压缩文件。

cd到dpkg源目录的根目录。

 ./configure make sudo make install 

如果./configure失败,您可能需要下载一些软件包

根据您删除的内容,您可以通过从手动下载的.deb文件中提取必要的部分来挽救这种情况。 当然,诀窍是找到一种方法来解压缩.deb文件而不需要工作dpkg – 幸运的是这里有一个解决方案

如何在没有命令dpkg的情况下提取并安装.deb?


首先转到packages.ubuntu.com并下载适用于您的操作系统版本和架构的相应.deb文件,例如

 mkdir debroot && cd debroot wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.18.4ubuntu1_amd64.deb 

现在使用ar解压缩deb文件代替通常的dpkg -x

 ar -x dpkg_1.18.4ubuntu1_amd64.deb 

(将dpkg_1.18.4ubuntu1_amd64.deb替换为您下载的实际deb的名称)。 您现在应该具有以下内容

 control.tar.gz data.tar.gz debian-binary dpkg_1.18.4ubuntu1_amd64.deb 

包的文件应该位于data.tar.gz以便在本地提取dpkg二进制文件

 tar xf data.tar.gz ./usr/bin/dpkg 

如果./usr/bin/dpkg ,您应该有一个./usr/bin/dpkg文件,您可以将其复制到/usr/bin目录

 sudo cp ./usr/bin/dpkg /usr/bin/ 

[请注意,您可以相对于/使用sudo tar -C ...来直接解压缩文件sudo tar -C ...但是分两步执行它只是感觉更安全一点。


如果这样做,我建议从存储库重新安装整个东西以保持一致性,即

 sudo apt-get update sudo apt-get install --reinstall dpkg 

(在较新的系统上,你可以用apt-get替换apt-get )。