Wofür ist dpkg?

21

Meine Frage ist einfach - ich möchte mehr über dpkg erfahren - was macht es?

rɑːdʒɑ
quelle
Dies wurde mindestens zweimal bearbeitet, um die Übersichtlichkeit zu verbessern. Aus heutiger Sicht lohnt es sich möglicherweise, offen zu bleiben (sofern es sich nicht um ein Duplikat handelt), da mindestens eine gute Antwort generiert wurde.
Belacqua
1
Sie sollten zuerst besuchen: en.wikipedia.org/wiki/Dpkg
Pandya

Antworten:

17

Wie gesagt, dpkgist ein Low-Level-System-Tool zum Extrahieren, Analysieren, Entpacken und Installieren oder Entfernen von .deb-Dateien. Es ist jedoch besser , .deb-Dateien zu verwenden Software Centreoder Gdebizu installieren oder zu entfernen, die aus anderen Quellen stammen, da diese beiden Programme eine Abhängigkeitsauflösung aufweisen.

Was jedoch nicht erklärt wurde, ist die Anatomie eines Updates unter Verwendung von dpkgund apt-get. Wenn wir zum Beispiel apt-getzur Installation aufrufen , cheesewird der Abhängigkeitsbaum analysiert und die erforderlichen Dateien abgerufen apt-get, die dann dpkgan die richtigen Speicherorte übergeben werden, um sie zu extrahieren, zu analysieren und zu installieren und sie gemäß den darin enthaltenen Skripten zu konfigurieren.

Die Skripte, die dpkgin jeder .deb-Datei gelesen werden, sind wichtig, da sie dem Programm Informationen zur Installation, Deinstallation und Konfiguration der Pakete liefern. Wenn Sie sich das Dokument ansehen, /var/log/dpkg.logfinden Sie viele ausführliche Details zu 'Triggern' und Paketen, die verschiedene Phasen des Entpackens und Konfigurierens durchlaufen. In seinem Blog erklärt Raphael Hertzog (ein wichtiger Debian-Entwickler und -Betreuer des dpkgPakets) mehr über dpkg-Trigger und die Art dpkgund Weise, wie Pakete überprüft und konfiguriert werden.

Wir kommen jetzt zum Kern dessen, was dpkgtut; Es behandelt Debian-Pakete fachmännisch und nicht ihre Abhängigkeiten. Mit dpkg-debkönnen Sie beispielsweise verschiedene Aktionen ausführen, um Dateien aus den .deb-Archiven zu analysieren und manuell zu extrahieren. siehe man dpkg-debfür weitere Informationen.

Der Status jedes Pakets ist in aufgelistet /var/lib/dpkg/status, mit grepdem ein bestimmtes Paket überprüft werden kann. Dpkgkann auch aufgerufen werden, um bestimmte konfigurierte Pakete neu zu konfigurieren (siehe man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

Sie können auch alle nicht konfigurierten Pakete konfigurieren, wenn bei einem Update ein Problem aufgetreten ist und die Konfiguration einiger Pakete noch aussteht:

sudo dpkg --configure -a

Ein großartiges Tutorial, das sich auf dpkgund konzentriert apt-get, finden Sie in den Kapiteln 5 und 6 des Debian-Handbuchs . Dies ist die beste verfügbare Diskussion. Geben Sie man dpkgin Ihr Terminal ein oder rufen Sie die Ubuntu-Hilfeseiten online auf, um alle verfügbaren Optionen anzuzeigen , z. B. das Auflisten dpkg -lder derzeit installierten Pakete.


quelle
4

dpkg ist eine Befehlszeilenmethode zum Installieren von einer .deb-Datei oder zum Entfernen bereits installierter Pakete. Wenn Sie zum Beispiel eine .deb-Datei in Ihrem Ausgangsverzeichnis hatten, dpkg -i yourpackage.debinstalliert das Ausführen dieses Pakets für Sie. Ich finde das zumindest für mich nützlich, weil es manchmal beim Klicken auf eine .deb-Datei das Ubuntu Software Center lädt, es aber nie wirklich installiert oder Probleme hat.

Unbekannter
quelle
4

Wie immer ist der manBefehl ein guter Ausgangspunkt.
man dpkgkann dir trotzdem alle möglichkeiten geben:

dpkg ist ein Paketmanager für Debian-basierte Systeme. Es kann Pakete installieren, entfernen und erstellen, aber im Gegensatz zu anderen Paketverwaltungssystemen können Pakete und ihre Abhängigkeiten nicht automatisch heruntergeladen und installiert werden.

Im Grunde genommen ist es also apt-get ohne Abhängigkeitsauflösung und wird zur Installation von .deb-Dateien verwendet.

Ich warne Sie jedoch: In den meisten Fällen wird NICHT empfohlen, Pakete mit dpkg zu deinstallieren. Es ist besser, einen Paketmanager zu verwenden, der Abhängigkeiten verarbeitet, um sicherzustellen, dass sich das System in einem konsistenten Zustand befindet.

Mit können Sie beispielsweise dpkg -r zipdas zip-Paket entfernen, aber alle Pakete, die davon abhängen, werden weiterhin installiert und funktionieren möglicherweise nicht mehr richtig.

Weitere Informationen finden Sie im Serverhandbuch und an anderer Stelle .

LnxSlck
quelle