dpkg = Debian Package Manager

Es ist das Basiswerkzeug zur Verwaltung von Paketen in Debian-basierten Systemen.

Im Gegensatz zu höheren Paketverwaltungswerkzeugen wie apt (oder apt-get), die dpkg im Hintergrund nutzen, arbeitet dpkg auf einer niedrigeren Ebene und bietet direkten Zugriff auf die Paket-Operationen.

Syntax

Bash
dpkg [OPTIONS] ACTION
Actions
-i, --install

Installiert das angegebene Paket. Es extrahiert und konfiguriert die Dateien, führt Skripte aus und sichert alte Dateien.

--unpack

Entpackt das Paket, ohne es zu konfigurieren.

--configure

Konfiguriert ein entpacktes, aber noch nicht konfiguriertes Paket. Kann auch alle ausstehenden Pakete konfigurieren.

--triggers-only

Verarbeitet nur Trigger, die durch Paketaktionen ausgelöst wurden.

-r, --remove

Entfernt ein installiertes Paket, wobei Konfigurationsdateien erhalten bleiben.

-P, --purge

Deinstalliert ein Paket und entfernt alle Dateien, einschließlich Konfigurationsdateien.

-V, --verify

Überprüft die Integrität eines Pakets.

-C, --audit

Überprüft die Konsistenz der Paket-Datenbank.

--update-avail / --merge-avail

Aktualisiert die Informationen über verfügbare Pakete in der dpkg-Datenbank.

-A, --record-avail

Aktualisiert die Verfügbarkeit von Paketen mit Informationen aus der angegebenen Paketdatei.

--clear-avail

Löscht die Informationen über verfügbare Pakete.

--get-selections

Gibt die aktuelle Auswahl der installierten Pakete aus.

--set-selections

Stellt die Paket-Auswahl basierend auf einer Eingabedatei ein.

--clear-selections

Setzt den Zustand aller nicht-essentiellen Pakete auf „deinstallieren“.

--yet-to-unpack

Sucht nach Paketen, die zur Installation ausgewählt, aber noch nicht installiert wurden.

--predep-package

Gibt ein Paket aus, das relevante Vor-Abhängigkeiten erfüllt und selbst keine unbefriedigten Vor-Abhängigkeiten hat.

--add-architecture

Fügt eine Architektur zur Liste der unterstützten Architekturen hinzu.

--remove-architecture

Entfernt eine Architektur zur Liste der unterstützten Architekturen.

--print-architecture

Gibt die Architektur an, für die dpkg Pakete installiert.

--print-foreign-architectures

Gibt die Liste der zusätzlichen Architekturen aus, die von dpkg unterstützt werden.

--compare-versions

Vergleicht Versionsnummern basierend auf den angegebenen Operatoren.

-?, --help

Zeigt eine kurze Hilfe an.

--version

Zeigt die Versionsinformationen von dpkg an.

Aufbau

Ein Debian-Paket (.deb) besteht aus:

  • Dateien: Die eigentlichen Dateien, die installiert werden sollen.
  • Meta-Daten: Wie die Paketbeschreibung, die Versionsnummer, Abhängigkeiten, etc.
  • Installations- und Deinstallationsskripte: Skripte, die vor, während und nach der Installation/Deinstallation des Pakets ausgeführt werden.

Operationen

Installation eines Pakets

Um ein .deb Paket zu installieren, verwendet man folgenden Befehl.

Bash Beispiel
sudo dpkg -i paketname.deb
Parameter
-i

Steht für install. Es sagt dpkg, dass das angegebene Paket installiert werden soll.

Überprüfung der Installation

Nach der Installation kann man überprüfen, ob das Paket korrekt installiert wurde.

Bash Beispiel
sudo dpkg -l | grep <paketname>
Parameter
-l

Zeigt eine Liste aller installierten Pakete an

grep <paketname> filtert die Liste nach dem Namen des Pakets.

Entfernen eines Pakets

Um ein Paket zu entfernen, verwendet man folgende Anweisung.

Bash Beispiel
sudo dpkg -r <paketname>
Parameter
-P

Steht für purge. Es entfernt das Paket und seine Konfigurationsdateien.

Informationen über Pakete

Liste aller installierten Pakete

Um eine Liste aller installierten Pakete anzuzeigen, wird folgende Anweisung verwendet.

Bash Beispiel
sudo dpkg -l

Detaillierte Informationen anzeigen

Wenn man detaillierte Informationen zu einem installierten Paket erhalten möchte, verwendet man folgenden Befehl.

Bash Beispiel
sudo dpkg -s <paketname>
Parameter
-s

Steht für status und zeigt den Status und die Details des Pakets an.

Häufige Stolperfallen

dpkg vs. apt — das falsche Werkzeug für den Alltag.

Der häufigste Fehler: dpkg wird wie ein vollwertiger Paketmanager behandelt. dpkg installiert nur das angegebene .deb-Paket, ohne Abhängigkeiten aufzulösen. Fehlen benötigte Bibliotheken oder Pakete, schlaegt die Installation entweder sofort fehl oder — schlimmer — das Programm läuft später nicht richtig. Für die taegliche Paketverwaltung verwendest du apt, das Abhängigkeiten automatisch berechnet und aus den Repositories nachinstalliert. dpkg ist das richtige Werkzeug, wenn du ein einzelnes, heruntergeladenes .deb installieren oder detaillierte Informationen über ein bereits installiertes Paket abrufen willst.

Fehlende Abhängigkeiten nach dpkg -i — der DPKG-Broken-State.

Installierst du ein .deb mit dpkg -i und es fehlen Abhängigkeiten, vermerkt dpkg das Paket als “halb-installiert” oder führt zu einem broken state. apt wird danach bei jeder Operation meckern und dich auffordern, apt —fix-broken install auszuführen. Das repariert den Zustand, indem es die fehlenden Abhängigkeiten nachinstalliert. Am elegantesten umgehst du das Problem, indem du lokale .deb-Dateien direkt mit sudo apt install ./paketname.deb installierst — apt nutzt dann dpkg im Hintergrund, löst aber vorher alle Abhängigkeiten auf.

dpkg --force-remove — gewaltsames Entfernen mit Kollateralschaeden.

dpkg bietet verschiedene —force-* Optionen, die die normalen Schutzmechanismen aushebeln. dpkg —force-remove-reinstreq oder dpkg —force-depends entfernen Pakete auch dann, wenn andere Pakete darauf angewiesen sind. Das Ergebnis: Abhängige Pakete funktionieren nicht mehr, die Paketdatenbank wird inkonsistent und das System kann in einen schwer reparierbaren Zustand geraten. Diese Optionen sind nur für absolute Notfaelle gedacht, wenn ein kaputtes Paket das gesamte System blockiert — und auch dann nur mit anschließendem apt —fix-broken install.

Kein automatisches Update — dpkg aktualisiert keine Paketlisten.

Anders als apt update && apt upgrade hat dpkg kein Konzept von Repositories oder automatischen Updates. Es weiß nichts von neuen Versionen, Sicherheitsupdates oder verfügbaren Alternativen. Wer ausschließlich mit dpkg arbeitet, muss jedes Update manuell als .deb-Datei herunterladen und installieren — inklusive aller Abhängigkeiten. Für die Systempflege ist apt der richtige Weg; dpkg ergänzt es für Low-Level-Operationen.

Hold-Status mit dpkg --set-selections — das vergessene Paket.

Mit echo “paketname hold” | sudo dpkg —set-selections kannst du ein Paket auf “hold” setzen, sodass es von apt upgrade nicht aktualisiert wird. Das ist praktisch für kritische Software, die eine bestimmte Version behalten muss. Die Gefahr: Monate oder Jahre später hat niemand mehr auf dem Schirm, dass dieses Paket zurückgehalten wird — es verpasst Sicherheitsupdates und wird zur Schwachstelle. Mit apt-mark showhold listest du alle zurückgehaltenen Pakete auf. Dokumentiere den Grund für jeden Hold und überprüfe die Liste regelmäßig.

Weiterführende Ressourcen

Externe Quellen

/ Weiter

Zurück zu Pakete

Zur Übersicht