Definition „Debian Package Manager“ Was ist dpkg?
Seit 1994 macht der Debian Package Manager dpkg die Installation von Softwarepaketen unter GNU/Linux-Installation smart. Metadaten im Softwarepaket und eine Datenbank im System ermöglichen dem Tool, Abhängigkeiten und Konflikte bei der Installation zu erkennen sowie eine saubere Deinstallation durchzuführen.
Anbieter zum Thema

Der Befehl dpkg ist ein zentrales, aber selten direkt genutztes Werkzeug der Softwareverwaltung bei Debian und zahlreichen anderen Linux-Distributionen, die das Debian-Paketformat verwenden. Hierzu zählen beispielsweise Ubuntu, Raspbian oder der systemd-freie Fork Devuan.
Die Benutzerinteraktion mit dem Debian Package Manger erfolgt in der Regel über Frontends wie dselect oder das leistungsfähigere und komfortablere Advanced Package Tool APT. Trotzdem ist es möglich, einzelne sowie alle in einem Verzeichnis versammelten Pakete mit einem Aufruf des Befehls dpkg zu installieren.
Ist der direkte Aufruf von dpkg sinnvoll?
Im Gegensatz zu dem elementaren Kommando dpkg können die Frontends Datei- und Versionskonflikte bei der Installation nicht nur erkennen und den Vorgang abbrechen, sondern Abhängigkeiten und Konflikte auflösen oder Lösungsvorschläge anbieten. APT benötigt für die Installation aber ein spezielles Repository, um die verfügbaren Pakete zu finden.
Möchte man hingegen nur einzelne Pakete von einem Drittanbieter installieren, der vielleicht gar kein solches APT-Archiv bereitstellt, dann ist dpkg das Mittel der Wahl. Darüber hinaus kann dpkg einzelne Softwarepakete deinstallieren, Installationsprobleme lösen sowie Informationen über den Inhalt von Paketdateien sowie im System installierte Pakete liefern.
Wichtige Aufrufvarianten des Befehls dpkg
Der dpkg-Befehl wird je nach Verwendung mit verschiedenen Optionen aufgerufen. Folgende Befehle sind dabei besonders interessant:
Installation einer Software aus der bzw. den angegebenen .deb-Dateien:
dpkg -i installationspaket.deb
Inhalt des angegebenen, als Datei lokal vorhandenen Pakets auflisten:
dpkg -i -R installationspaket.deb
Namen des Pakets finden, zu dem eine im System installierte Datei gehört:
dpkg -S dateiname
dpkg --search dateiname
Informationen zum Installationsstatus des spezifizierten Pakets:
dpkg -s installationspaket.deb
dpkg --status installationspaket.deb
Pfade aller Dateien ausgeben, die das angegebene Paket installiert hat:
dpkg -L Paketname
dpkg --listfiles Paketname
Auflistung aller installierten Pakete:
dpkg -l
Diese Aufrufvariante ist ein benutzerfreundlicher Zugang zur Datei „status“ im dpkg-Datenbankverzeichnis. Das Tool akzeptiert hierbei ein Suchmuster als Argument, das die Anzeige einschränkt. Dabei sind die Platzhalterzeichen dieselben, die auch die Shell verwendet, und es ist meist nötig, die Muster mit Anführungszeichen vor der Filename-Expansion der Shell zu schützen.
Installationsprobleme – dpkg als Helfer in der Not
Das Installationswerkzeug dpkg kann hilfreich sein, wenn bei der Installation mit Frontends wie APT oder dselect Probleme auftreten. Zum einen findet der Aufruf mit "-C" oder "--audit" unvollständig installierte Pakete und gibt gegebenenfalls Lösungsvorschläge. Andererseits kann das Programm auch Probleme beseitigen.
Wird zum Beispiel ein Installationsvorgang durch einen Fehler wie mangelnder Plattenplatz oder eine defekte Datei auf einem Installations-Medium unterbrochen, dann kann die Installation auch nach dem Beheben der Fehlerursache manchmal nicht fortgesetzt werden, weil teilweise konfigurierte Pakete den Prozess blockieren. Hier hilft in der Regel der Befehl:
dpkg --configure
Mit dem Schalter „-a“ oder „--pending“ aufgerufen, leitet das Tool die Konfiguration aller nicht vollständig oder noch nicht konfigurierten Pakete ein. Dabei wählt es die Reihenfolge so, dass keine Konflikte durch noch nicht erfüllte Abhängigkeiten auftreten.
Mit dpkg einen PC klonen
Das Schalterpaar „--get-selections“ und „--set-selections“ ermöglicht es, eine Liste der installierten Pakete zu erstellen und zu rekonstruieren. Damit lassen sich Sicherungen erstellen und fertig installierte Systeme klonen. Die Paketliste gibt dpkg auf die Standardausgabe aus.
Zum Speichern muss sie daher in eine Datei umgeleitet werden, mittels einer Pipe kann sie aber auch direkt wieder als Eingabe für dpkg dienen. Ist ein neuer Computer mit einer Basisinstallation vorbereitet und der SSH-Server aktiviert, dann ist die Übertragung der Paketauswahl vom Quell- auf den Zielrechner mit einem einzigen SSH-Befehl möglich: ssh dpkg
Wo speichert dpkg seine Daten?
Das Installationstool nutzt das Verzeichnis /var/lib/dpkg für die Speicherung der Metadaten. Auch wenn die Dateien menschenlesbar sind, sollten sie nicht von Hand modifiziert werden, weil Fehler bei der Bearbeitung eine Neuinstallation des Systems nötig machen können. Trotzdem kann der Inhalt des Datenbankverzeichnisses für Systemadministratoren interessant sein, denn dort finden sich die paketspezifischen Skripte, die vor und während der Installation, respektive Deinstallation ausgeführt werden. Mit entsprechender Programmierkenntnis lassen sich damit Fragen zum Installationsprozess klären.
dpkg-Tools für Software- und Paketentwickler
Speziell für Softwareentwickler und Personen, die neue Deb-Pakete zusammenstellen wollen, gibt es ein zusätzliches Paket dpkg-dev. Dieses enthält eine Reihe von Tools, deren Namen mit „dpkg-“ anfangen und Hilfsmittel für das Kompilieren und Packen der Software bereitstellen.
(ID:46101884)