Lost / Deleted dpkg (Paketmanager für Debian). Wie bekomme ich es zurück?

8

Betriebssystem: Ubuntu 12.04

Versehentlich gelöscht dpkg. Jetzt können keine Pakete installiert werden. Benötigt also ein dpkgInstallationsprogramm, das Pakete installiert.

Raghu G.
quelle

Antworten:

2

Laden Sie das Paket herunter, das die Version Ihrer Distribution ergänzt. https://launchpad.net/ubuntu/+source/dpkg/1.16.1.2ubuntu7

Dekomprimieren Sie die Datei.

cd zum Stammverzeichnis des dpkg-Quellverzeichnisses.

./configure

make

sudo make install

Möglicherweise müssen Sie einige Pakete herunterladen, wenn dies ./configurefehlschlägt

j0h
quelle
Wenn ich "./configure" eingebe, sagt es etwas und am Ende: "configure: error: keine Fluchbibliothek gefunden" ...
Mohammad Mahdi Naderi
Dies erklärt eigentlich nichts und funktioniert derzeit nicht. ./configure erfordert eine Reihe von Dingen und es ist unklar, was genau es will.
G_V
1
@G_V Wenn Sie eine neue Frage haben, würde sicher jemand gerne eine ausführliche Erklärung geben. Veröffentlichen Sie Ihre Konfigurationsfehler in Ihrer neuen Frage. Es hört sich so an, als müssten Sie einige Pakete installieren, damit dpkg funktioniert.
j0h
@ j0h Am Ende habe ich eine Reparaturinstallation meiner Betriebssystempartition durchgeführt, weniger Aufwand. Ich habe nicht wirklich verstanden, wofür ./configure war oder was make wirklich tat, da ich noch nie etwas über make installiert hatte. Dieser Link half zu verstehen, was tatsächlich vor sich ging.
G_V
9

Je nachdem, was Sie entfernt haben, können Sie die Situation möglicherweise beheben, indem Sie die erforderlichen Teile aus einer manuell heruntergeladenen .debDatei extrahieren . Der Trick besteht natürlich darin, einen Weg zu finden, die .debDatei ohne Arbeit zu entpacken dpkg- zum Glück gibt es hier eine Lösung

Wie extrahiere und installiere ich .deb ohne den Befehl dpkg?


Gehen Sie zuerst zu packages.ubuntu.com und laden Sie die entsprechende .debDatei für Ihre Betriebssystemversion und -architektur herunter, z

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

Entpacken Sie nun die Deb-Datei aranstelle der üblichendpkg -x

ar -x dpkg_1.18.4ubuntu1_amd64.deb

(Ersetzen Sie dpkg_1.18.4ubuntu1_amd64.debdurch den Namen der tatsächlichen Deb, die Sie heruntergeladen haben). Sie sollten jetzt den folgenden Inhalt haben

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

Die Dateien des Pakets sollten sich in der Datei befinden data.tar.gz, um die dpkgBinärdatei lokal zu extrahieren

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

Wenn das funktioniert hat, sollten Sie eine Datei haben, in ./usr/bin/dpkg die Sie in Ihr /usr/binVerzeichnis kopieren können

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

[Beachten Sie, dass Sie die Datei direkt im Verhältnis entpacken kann /mit sudo tar -C ...aber tun fühlt es sich in zwei Schritten nur ein wenig sicherer zu machen.]


Wenn das funktioniert, würde ich empfehlen, das Ganze aus Gründen der Konsistenz erneut aus dem Repository zu installieren

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

(auf neueren Systemen können Sie ersetzen apt-getdurch apt).

Steeldriver
quelle