丢失/删除的dpkg(Debian的软件包管理器)。我该如何找回?


8

操作系统:Ubuntu 12.04

不小心删除了dpkg。现在,无法安装软件包。因此,需要一个dpkg用于安装软件包的安装程序。

Answers:


2

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

解压缩文件。

cd 到dpkg源目录的根目录。

./configure

make

sudo make install

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


当我键入“ ./configure”时,它说了些什么,并在它们的结尾:“ configure:错误:未找到curses库” ...
Mohammad Mahdi Naderi 2016年

这实际上并不能解释任何内容,目前还无法正常工作。./configure需要很多东西,目前尚不清楚它到底想要什么。
G_V

1
@G_V如果您有新问题,我相信有人愿意提供冗长的解释。将您的配置错误发布到您的新问题。听起来您需要安装一些软件包才能使dpkg起作用。
j0h

@ j0h我结束了对我的OS分区的修复安装,省去了麻烦。因为我以前从未通过make安装任何东西,所以我不太了解./configure的用途或make的作用。链接有助于了解实际情况。
G_V

9

根据所删除的内容,您可以通过从手动下载的.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目录中

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

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


如果可行,我建议从存储库重新安装整个文件以保持一致性,即

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

(在较新的系统,可以更换apt-getapt)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.