丢失/删除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
)。