如何从意外删除 dpkg 中恢复?

har*_*ain 13 dpkg software-installation

我错误地从我的电脑(ubuntu 16.04)中删除了 dpkg。当我运行 apt 命令时,它显示错误:

Could not exec dpkg!
E: Sub-process /usr/bin/dpkg returned an error code (100)
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我建议任何解决方案。提前致谢 !!!

Nat*_*man 17

要解决此问题,请打开终端并下载dpkg安装 dpkg 包裹:

# For i386:
wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.18.4ubuntu1_i386.deb
# For amd64
wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.18.4ubuntu1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

对于不同的 Ubuntu 版本,版本会有所不同。如果apt-get仍然可用(仅dpkg被删除),您仍然可以使用apt-get仅下载适当的版本:

apt-get download dpkg
Run Code Online (Sandbox Code Playgroud)

或者您可以使用https://packages.ubuntu.com/dpkg获取您的 Ubuntu 版本和架构的下载链接。

data.tar.gz.deb文件中提取文件,它实际上是一个ar存档:

ar x dpkg_*.deb
Run Code Online (Sandbox Code Playgroud)

data.tar.gz文件系统中提取包内容:

sudo tar xf data.tar.gz -C / .
Run Code Online (Sandbox Code Playgroud)

注意:这将足以dpkg让您使用它。确保dpkg之后安装软件包:

sudo apt-get install --reinstall dpkg
Run Code Online (Sandbox Code Playgroud)