Handbücher für die Kommandozeile

Man » dpkg-Handbuch online – detaillierte Online-Dokumentation für die dpkg-Manpage

🌍
dpkg – Paketmanager für Debian

SYNOPSIS

dpkg [Option...] Befehl

WARNUNG

Dieses Handbuch ist für Benutzer gedacht, die die Befehlszeilenoptionen und Paketstatus von dpkg im Detail verstehen möchten, mehr als in der Hilfedatei von dpkg --help.

Es sollte nicht von Paketbetreuern verwendet werden, die verstehen möchten, wie dpkg ihre Pakete installiert. Die Beschreibungen dessen, was dpkg beim Installieren und Entfernen von Paketen tut, sind besonders unzureichend.

BESCHREIBUNG

dpkg ist ein Werkzeug auf mittlerer Ebene, um Debian-Pakete zu installieren, zu erstellen, zu entfernen und zu verwalten. Die primäre und benutzerfreundlichere Schnittstelle für dpkg als CLI (Befehlszeilenschnittstelle) ist [apt]({filename}../../apt)(8) und als TUI (Terminal-Benutzerschnittstelle) ist aptitude(8). dpkg selbst wird vollständig über Befehlszeilenparameter gesteuert, die aus genau einem Befehl und null oder mehr Optionen bestehen. Der Befehlsparameter teilt dpkg mit, was es tun soll, und Optionen steuern das Verhalten des Befehls in irgendeiner Weise.

dpkg kann auch als Front-End für dpkg-deb(1) und dpkg-query(1) verwendet werden. Die Liste der unterstützten Befehle finden Sie später im Abschnitt BEFEHLE. Wenn ein solcher Befehl gefunden wird, führt dpkg einfach dpkg-deb oder dpkg-query mit den angegebenen Parametern aus, es werden jedoch keine bestimmten Optionen an diese übergeben. Um eine solche Option zu verwenden, müssen die Back-End-Programme direkt aufgerufen werden.

INFORMATIONEN ÜBER PAKETE

dpkg verwaltet einige nützliche Informationen über verfügbare Pakete. Die Informationen sind in drei Klassen unterteilt: Status, Auswahlstatus und Flags. Diese Werte sollen hauptsächlich mit dselect geändert werden.

Paketstatus

nicht installiert

Das Paket ist nicht auf Ihrem System installiert.

Konfigurationsdateien

Nur die Konfigurationsdateien oder das Postrm-Skript und die Daten, die es zum Entfernen benötigt, des Pakets befinden sich auf dem System.

halb installiert

Die Installation des Pakets wurde gestartet, aber aus irgendeinem Grund nicht abgeschlossen.

ausgepackt

Das Paket ist ausgepackt, aber nicht konfiguriert.

halb konfiguriert

Das Paket ist ausgepackt und die Konfiguration wurde gestartet, aber noch nicht abgeschlossen.

Auslöser werden erwartet

Das Paket wartet auf die Ausführung von Triggern durch ein anderes Paket.

Auslöser ausstehend

Das Paket wurde ausgelöst.

installiert

Das Paket ist korrekt ausgepackt und konfiguriert.

Paket-Auswahlstatus

installieren

Das Paket ist für die Installation ausgewählt.

halten

Ein Paket, das als „auf Hold“ markiert ist, behält die gleiche Version bei, d. h. keine automatischen Neuinstallationen, Upgrades oder Entfernungen werden an ihm durchgeführt, es sei denn, diese Aktionen werden explizit angefordert oder dürfen mit der Option --force-hold automatisch ausgeführt werden.


deinstall

Das Paket ist für die Deinstallation ausgewählt (d. h. alle Dateien sollen entfernt werden, mit Ausnahme der Konfigurationsdateien).

purge

Das Paket ist für die vollständige Entfernung vorgesehen (d. h. alles aus den Systemverzeichnissen soll entfernt werden, auch die Konfigurationsdateien).

unknown

Der Auswahlstatus des Pakets ist unbekannt. Ein Paket, das sich auch in einem nicht installierten Zustand befindet und über ein „ok“-Flag verfügt, wird bei der nächsten Datenbankaktualisierung ignoriert.

Paket-Flags

ok Ein mit „ok“ markiertes Paket befindet sich in einem bekannten Zustand, benötigt aber möglicherweise weitere Verarbeitung.

reinstreq

Ein mit „reinstreq“ markiertes Paket ist beschädigt und muss neu installiert werden. Diese Pakete können nicht entfernt werden, es sei denn, dies wird mit der Option --force-remove-reinstreq erzwungen.

BEFEHLE

-i, --install paketdatei...

Installiert das Paket. Wenn die Option --recursive oder -R angegeben ist, muss sich paketdatei auf ein Verzeichnis beziehen.

Die Installation besteht aus den folgenden Schritten:

     Die Steuerdateien des neuen Pakets werden extrahiert.

     Wenn vor der neuen Installation bereits eine andere Version desselben Pakets installiert war, wird das `prerm`-Skript des alten Pakets ausgeführt.

     Das `preinst`-Skript wird ausgeführt, falls vom Paket bereitgestellt.

     Die neuen Dateien werden entpackt, und gleichzeitig werden die alten Dateien gesichert, sodass diese bei Problemen wiederhergestellt werden können.

     Wenn vor der neuen Installation bereits eine andere Version desselben Pakets installiert war, wird das `postrm`-Skript des alten Pakets ausgeführt. Beachten Sie, dass dieses Skript nach dem `preinst`-Skript des neuen Pakets ausgeführt wird, da gleichzeitig neue Dateien geschrieben und alte Dateien entfernt werden.

     Das Paket wird konfiguriert. Weitere Informationen dazu finden Sie unter `--configure`.

--unpack paketdatei...

Entpackt das Paket, konfiguriert es aber nicht. Wenn die Option --recursive oder -R angegeben ist, muss sich paketdatei auf ein Verzeichnis beziehen.

Es werden „Pre-Depends“-Trigger verarbeitet, es sei denn, --no-triggers wurde angegeben.

--configure paket...|-a|--pending

Konfiguriert ein Paket, das entpackt, aber noch nicht konfiguriert wurde. Wenn stattdessen -a oder --pending angegeben wird, werden alle entpackten, aber nicht konfigurierten Pakete konfiguriert.

Um ein Paket, das bereits konfiguriert wurde, neu zu konfigurieren, versuchen Sie stattdessen den Befehl dpkg-reconfigure(8) (der Teil des debconf-Projekts ist).

Die Konfiguration besteht aus den folgenden Schritten:

     Die Konfigurationsdateien werden entpackt, und gleichzeitig werden die alten Konfigurationsdateien gesichert, sodass diese bei Problemen wiederhergestellt werden können.

     Das `postinst`-Skript wird ausgeführt, falls vom Paket bereitgestellt.

Es werden Trigger verarbeitet, es sei denn, --no-triggers wurde angegeben.

--triggers-only paket...|-a|--pending

Verarbeitet nur Trigger (seit dpkg 1.14.17). Alle ausstehenden Trigger werden verarbeitet. Wenn Paketnamen angegeben werden, werden nur die Trigger dieser Pakete einmal verarbeitet, wenn dies erforderlich ist. Die Verwendung dieser Option kann dazu führen, dass Pakete in einem falschen Zustand mit ausstehenden oder auszulösenden Triggern verbleiben. Dies kann später behoben werden, indem Sie Folgendes ausführen: dpkg --configure --pending.


-r, --remove paket...|-a|--pending

Entfernt ein installiertes Paket. Dadurch werden alle Dateien entfernt, mit Ausnahme von Konfigurationsdateien und anderen Daten, die vom Postrm-Skript bereinigt werden, was möglicherweise eine erneute Konfiguration des Pakets bei einer späteren Neuinstallation vermeidet (Konfigurationsdateien sind Konfigurationsdateien, die in der DEBIAN/conffiles-Steuerdatei aufgeführt sind). Wenn es keine DEBIAN/conffiles-Steuerdatei oder kein DEBIAN/postrm-Skript gibt, entspricht dieser Befehl der Ausführung von --purge. Wenn anstelle eines Paketnamens -a oder --pending angegeben wird, werden alle Pakete entfernt, die entpackt, aber in der Datei /var/lib/dpkg/status als zu entfernende Pakete markiert wurden.

Das Entfernen eines Pakets besteht aus den folgenden Schritten:

     Führt das Prerm-Skript aus.

     Entfernt die installierten Dateien.

     Führt das Postrm-Skript aus.

Verarbeitet Trigger, es sei denn, --no-triggers wurde angegeben.

-P, --purge paket...|-a|--pending

Entfernt vollständig ein installiertes oder bereits entferntes Paket. Dadurch wird alles entfernt, einschließlich Konfigurationsdateien und aller anderen Dateien, die vom Postrm-Skript bereinigt wurden. Wenn anstelle eines Paketnamens -a oder --pending angegeben wird, werden alle Pakete entfernt, die entpackt oder entfernt, aber in der Datei /var/lib/dpkg/status als zu entfernende Pakete markiert wurden.

Hinweis: Einige Konfigurationsdateien sind dpkg möglicherweise nicht bekannt, da sie separat über die Konfigurationsskripte erstellt und verwaltet werden. In diesem Fall entfernt dpkg sie nicht selbst, aber das Postrm-Skript des Pakets (das von dpkg aufgerufen wird), muss sich während der vollständigen Entfernung um deren Entfernung kümmern. Dies gilt natürlich nur für Dateien in Systemverzeichnissen und nicht für Konfigurationsdateien, die in die Home-Verzeichnisse einzelner Benutzer geschrieben werden.

Die vollständige Entfernung eines Pakets besteht aus den folgenden Schritten:

     Entfernt das Paket, falls es nicht bereits entfernt wurde. Informationen zur Vorgehensweise finden Sie unter --remove.

     Führt das Postrm-Skript aus.

Verarbeitet Trigger, es sei denn, --no-triggers wurde angegeben.

-V, --verify [Paketname...]

Überprüft die Integrität des Pakets oder aller Pakete, falls kein Paketname angegeben wird, indem die Informationen aus den von einem Paket installierten Dateien mit den Datei-Metadaten-Informationen verglichen werden, die in der dpkg-Datenbank gespeichert sind (seit dpkg 1.17.2). Die Quelle der Datei-Metadaten-Informationen in der Datenbank sind die Binärpakete selbst. Diese Metadaten werden bei der Paketentpackung während des Installationsprozesses erfasst.

Derzeit wird nur eine funktionale Prüfung durchgeführt, nämlich eine MD5-Summenprüfung des Dateiinhalts anhand des in der Datei-Datenbank gespeicherten Werts. Dies wird nur dann überprüft, wenn die Datenbank die Datei-MD5-Summe enthält. Um fehlende Metadaten in der Datenbank zu überprüfen, kann der Befehl --audit verwendet werden. Dies ist nur eine Integritätsprüfung und sollte nicht als eine Art Sicherheitsprüfung betrachtet werden.

Das Ausgabeformat kann mit der Option --verify-format ausgewählt werden, die standardmäßig das RPM-Format verwendet, dies kann sich jedoch in Zukunft ändern, und daher sollten Programme, die diese Befehlsausgabe analysieren, das erwartete Format explizit angeben.


-C, --audit [Paketname...]

Führt Datenbank-Konsistenz- und Integritätsprüfungen für Paketname oder alle Pakete aus, falls kein Paketname angegeben ist (Paketweise-Prüfungen ab dpkg 1.17.10). Zum Beispiel werden Pakete gesucht, die nur teilweise auf dem System installiert sind oder bei denen Kontrolldaten oder Dateien fehlen, falsch oder veraltet sind. dpkg schlägt vor, wie diese Probleme behoben werden können.

--update-avail [Paketdatei]
--merge-avail [Paketdatei]

Aktualisiert die Informationen von dpkg und dselect über die verfügbaren Pakete. Mit dem Befehl --merge-avail werden die alten Informationen mit den Informationen aus der Paketdatei kombiniert. Mit dem Befehl --update-avail werden die alten Informationen durch die Informationen in der Paketdatei ersetzt. Die mit Debian verteilte Paketdatei heißt einfach „Packages“. Wenn das Argument Paketdatei fehlt oder „-“ ist, wird die Datei von der Standardeingabe gelesen (ab dpkg 1.17.7). dpkg speichert seine Aufzeichnungen über verfügbare Pakete in /var/lib/dpkg/available.

Ein einfacherer Einmalbefehl zum Abrufen und Aktualisieren der verfügbaren Datei ist dselect update. Beachten Sie, dass diese Datei größtenteils nutzlos ist, wenn Sie kein dselect, sondern ein APT-basiertes Frontend verwenden: APT hat sein eigenes System, um den Überblick über verfügbare Pakete zu behalten.

-A, --record-avail Paketdatei...

Aktualisiert die Informationen von dpkg und dselect über die verfügbaren Pakete mit den Informationen aus der Paketdatei. Wenn die Option --recursive oder -R angegeben ist, muss sich die Paketdatei auf ein Verzeichnis beziehen.

--forget-old-unavail

Ist jetzt veraltet und eine Leeroperation, da dpkg automatisch vergessene, nicht installierte Pakete ignoriert (ab dpkg 1.15.4), aber nur solche, die keine Benutzerinformationen wie Paketauswahlen enthalten.

--clear-avail

Löscht die vorhandenen Informationen darüber, welche Pakete verfügbar sind.

--get-selections [Paketnamenmuster...]

Ruft die Liste der Paketauswahlen ab und schreibt sie in die Standardausgabe. Ohne ein Muster werden nicht installierte Pakete (d. h. solche, die zuvor deinstalliert wurden) nicht angezeigt.

--set-selections

Setzt die Paketauswahlen mithilfe einer Datei, die von der Standardeingabe gelesen wird. Diese Datei sollte im Format „Paket Zustand“ vorliegen, wobei Zustand eines der folgenden ist: install, hold, deinstall oder purge. Leere Zeilen und Kommentarzeilen, die mit „#“ beginnen, sind ebenfalls zulässig.

Die verfügbare Datei muss aktuell sein, damit dieser Befehl nützlich ist, andernfalls werden unbekannte Pakete mit einer Warnung ignoriert. Weitere Informationen finden Sie in den Befehlen --update-avail und --merge-avail.

--clear-selections

Setzt den angeforderten Zustand aller nicht unbedingt erforderlichen Pakete auf deinstall (ab dpkg 1.13.18). Dies soll unmittelbar vor --set-selections verwendet werden, um alle Pakete zu deinstallieren, die nicht in der Liste enthalten sind, die an --set-selections übergeben wird.

--yet-to-unpack

Sucht nach Paketen, die für die Installation ausgewählt wurden, aber aus irgendeinem Grund noch nicht installiert wurden.


Hinweis: Dieser Befehl verwendet sowohl die verfügbare Datei als auch die Paketauswahl.

--predep-package
Gibt ein einzelnes Paket aus, das Ziel von einer oder mehreren relevanten Vorabhängigkeiten ist und selbst keine unbefriedigten Vorabhängigkeiten hat.

Wenn ein solches Paket vorhanden ist, wird es als Packages-Datei-Eintrag ausgegeben, der bei Bedarf angepasst werden kann.

Hinweis: Dieser Befehl verwendet sowohl die verfügbare Datei als auch die Paketauswahl.

Gibt 0 zurück, wenn ein Paket ausgegeben wird, 1, wenn kein geeignetes Paket verfügbar ist, und 2 bei einem Fehler.

--add-architecture architecture
Fügt die angegebene Architektur zur Liste der Architekturen hinzu, für die Pakete installiert werden können, ohne --force-architecture zu verwenden (seit dpkg 1.16.2). Die Architektur, für die dpkg erstellt wurde (d. h. die Ausgabe von --print-architecture), ist immer Teil dieser Liste.

--remove-architecture architecture
Entfernt die angegebene Architektur aus der Liste der Architekturen, für die Pakete installiert werden können, ohne --force-architecture zu verwenden. Wenn die Architektur derzeit in der Datenbank verwendet wird, wird der Vorgang abgelehnt, es sei denn, --force-architecture wird angegeben. Die Architektur, für die dpkg erstellt wurde (d. h. die Ausgabe von --print-architecture), kann niemals aus dieser Liste entfernt werden.

--print-architecture
Gibt die Architektur der Pakete aus, die dpkg installiert (z. B. „i386“).

--print-foreign-architectures
Gibt eine zeilenweise Liste der zusätzlichen Architekturen aus, für die dpkg konfiguriert ist, um Pakete zu installieren (seit dpkg 1.16.2).

--assert-help
Gibt Hilfe zu den Optionen --assert-feature aus (seit dpkg 1.21.0).

--assert-feature
Bestätigt, dass dpkg die angeforderte Funktion unterstützt. Gibt 0 zurück, wenn die Funktion vollständig unterstützt wird, 1, wenn die Funktion bekannt ist, dpkg diese aber noch nicht vollständig unterstützen kann, und 2, wenn die Funktion unbekannt ist. Die aktuelle Liste der bestätigbaren Funktionen ist:

support-predepends
Unterstützt das Feld Pre-Depends (seit dpkg 1.1.0).

working-epoch
Unterstützt Epochen in Versionszeichenfolgen (seit dpkg 1.4.0.7).

long-filenames
Unterstützt lange Dateinamen in deb(5)-Archiven (seit dpkg 1.4.1.17).

multi-conrep
Unterstützt mehrere Konflikte und Ersetzungen (seit dpkg 1.4.1.19).

multi-arch
Unterstützt Multi-Arch-Felder und -Semantik (seit dpkg 1.16.2).

versioned-provides
Unterstützt versionierte Provides (seit dpkg 1.17.11).

protected-field
Unterstützt das Feld Protected (seit dpkg 1.20.1).

--validate-thing string
Überprüft, ob die Zeichenfolge eine korrekte Syntax aufweist (seit dpkg 1.18.16). Gibt 0 zurück, wenn die Zeichenfolge gültig ist, 1, wenn die Zeichenfolge ungültig ist, aber in weniger strengen Kontexten akzeptiert werden kann, und 2, wenn die Zeichenfolge ungültig ist. Die aktuelle Liste der validierbaren Elemente ist:

pkgname
Überprüft den angegebenen Paketnamen (seit dpkg 1.18.16).

trigname
Überprüft den angegebenen Trigger-Namen (seit dpkg 1.18.16).

archname
Überprüft den angegebenen Architektur-Namen (seit dpkg 1.18.16).

version
Überprüft die angegebene Version (seit dpkg 1.18.16).

--compare-versions ver1 op ver2

Vergleicht Versionsnummern, wobei op ein binärer Operator ist. dpkg gibt true (0) zurück, wenn die angegebene Bedingung erfüllt ist, und false (1), andernfalls. Es gibt zwei Gruppen von Operatoren, die sich darin unterscheiden, wie sie eine leere ver1 oder ver2 behandeln. Diese behandeln eine leere Version als kleiner als jede Version: lt le eq ne ge gt. Diese behandeln eine leere Version als größer als jede Version: lt-nl le-nl ge-nl gt-nl. Diese werden nur zur Kompatibilität mit der Syntax der Steuerdatei bereitgestellt: < << <= = >= >> >. Die Operatoren < und > sind veraltet und sollten nicht verwendet werden, da ihre Semantik verwirrend ist. Zur Veranschaulichung: 0.1 < 0.1 ergibt true.

-?, --help

Zeigt eine kurze Hilfenachricht an.

--force-help

Gibt Hilfe zu den --force-thing-Optionen.

-Dh, --debug=help

Gibt Hilfe zu Debug-Optionen.

--version

Zeigt die dpkg-Versionsinformationen an.

Wenn es mit --robot verwendet wird, ist die Ausgabe die Programmversion in einem numerischen Punktformat, ohne Zeilenumbruch.

dpkg-deb-Befehle

Weitere Informationen zu den folgenden Befehlen sowie anderen Befehlen und Optionen, die nicht über die dpkg-Schnittstelle verfügbar sind, finden Sie unter dpkg-deb(1).

-b, --build Verzeichnis [Archiv|Verzeichnis]

Erstellt ein deb-Paket.

-c, --contents Archiv

Listet den Inhalt eines deb-Pakets auf.

-e, --control Archiv [Verzeichnis]

Extrahiert Kontrollinformationen aus einem Paket.

-x, --extract Archiv Verzeichnis

Extrahiert die in einem Paket enthaltenen Dateien.

-X, --vextract Archiv Verzeichnis

Extrahiert und zeigt die Dateinamen an, die in einem Paket enthalten sind.

-f, --field Archiv [Kontrollfeld...]

Zeigt ein oder mehrere Kontrollfelder eines Pakets an.

--ctrl-tarfile Archiv

Gibt die in einem Debian-Paket enthaltene Kontroll-Tar-Datei aus.

--fsys-tarfile Archiv

Gibt die im Debian-Paket enthaltene Dateisystem-Tar-Datei aus.

-I, --info Archiv [Kontrolldatei...]

Zeigt Informationen über ein Paket an.

dpkg-query-Befehle

Weitere Informationen zu den folgenden Befehlen sowie anderen Befehlen und Optionen, die nicht über die dpkg-Schnittstelle verfügbar sind, finden Sie unter dpkg-query(1).

-l, --list Paketnamenmuster...

Listet Pakete auf, die dem angegebenen Muster entsprechen.

-s, --status Paketname...

Gibt den Status des angegebenen Pakets aus.

-L, --listfiles Paketname...

Listet die Dateien auf, die von Paketname in Ihrem System installiert sind.

-S, --search Dateinamen-Suchmuster...

Sucht nach einer Datei aus installierten Paketen.

-p, --print-avail Paketname...

Zeigt Details zu Paketname an, wie sie in /var/lib/dpkg/available gefunden wurden. Benutzer von APT-basierten Frontends sollten stattdessen apt show Paketname verwenden.

OPTIONEN

Alle Optionen können sowohl über die Befehlszeile als auch in der dpkg-Konfigurationsdatei /etc/dpkg/dpkg.cfg oder Fragmentdateien (mit Namen, die diesem Shell-Muster entsprechen: '[0-9a-zA-Z_-]*') im Konfigurationsverzeichnis /etc/dpkg/dpkg.cfg.d angegeben werden. Jede Zeile in der Konfigurationsdatei ist entweder eine Option (genau wie die Option in der Befehlszeile, aber ohne führende Bindestriche) oder ein Kommentar (wenn sie mit einem '#' beginnt).

--abort-after=Zahl

Ändert, nach wie vielen Fehlern dpkg abbricht. Der Standardwert ist 50.


-B, --auto-deconfigure

Wenn ein Paket entfernt wird, besteht die Möglichkeit, dass ein anderes installiertes Paket von dem entfernten Paket abhängig war. Durch die Angabe dieser Option wird eine automatische De-Konfiguration des Pakets, das von dem entfernten Paket abhängig war, ausgelöst.

-Doctal, --debug=octal

Aktiviert das Debugging. octal wird durch bitweises OR-Verknüpfen der gewünschten Werte aus der folgenden Liste gebildet (beachten Sie, dass sich diese Werte in zukünftigen Versionen ändern können). -Dh oder --debug=help zeigt diese Debugging-Werte an.

Nummer  Beschreibung
1   Allgemein hilfreiche Fortschrittsinformationen
2   Aufruf und Status der Wartungsskripte
10  Ausgabe für jede verarbeitete Datei
100 Viel Ausgabe für jede verarbeitete Datei
20  Ausgabe für jede Konfigurationsdatei
200 Viel Ausgabe für jede Konfigurationsdatei
40  Abhängigkeiten und Konflikte
400 Viel Ausgabe zu Abhängigkeiten/Konflikten
10000   Auslöseraktivierung und -verarbeitung
20000   Viel Ausgabe bezüglich Auslöser
40000   Übermäßig viel Ausgabe bezüglich Auslöser
1000    Viel Unsinn über z. B. das dpkg/info-Verzeichnis
2000    Unvorstellbar viel Unsinn

--force-things
--no-force-things, --refuse-things

Erzwingen oder ablehnen (no-force und refuse bedeuten dasselbe), bestimmte Dinge zu tun. things ist eine durch Kommas getrennte Liste von Dingen, die unten angegeben sind. --force-help zeigt eine Nachricht an, die diese beschreibt. Dinge, die mit (*) gekennzeichnet sind, werden standardmäßig erzwungen.

Warnung: Diese Optionen sind hauptsächlich für Experten gedacht. Die Verwendung ohne
vollständiges Verständnis der Auswirkungen kann das gesamte System beschädigen.

all:
Schaltet (oder deaktiviert) alle Erzwingungsoptionen ein.

downgrade(*):
Installiert ein Paket, auch wenn eine neuere Version bereits installiert ist.

Warnung: Derzeit führt dpkg keine Abhängigkeitsprüfung bei Downgrades durch und warnt Sie daher
nicht, wenn das Downgrade die Abhängigkeit eines anderen Pakets beeinträchtigt. Dies kann
schwerwiegende Nebenwirkungen haben, das Downgrade wesentlicher Systemkomponenten kann sogar
das gesamte System unbrauchbar machen. Mit Vorsicht verwenden.

configure-any:
Konfiguriert auch alle ausgepackten, aber nicht konfigurierten Pakete, von denen das aktuelle
Paket abhängt.

hold:
Erlaubt automatische Installationen, Upgrades oder Entfernungen von Paketen, auch wenn diese als
"auf Hold" markiert sind. Hinweis: Wenn diese Aktionen explizit angefordert werden, wird der
"Hold"-Paketstatus immer ignoriert.

remove-reinstreq:
Entfernt ein Paket, auch wenn es beschädigt ist und als zur Neuinstallation erforderlich markiert ist.
Dies kann beispielsweise dazu führen, dass Teile des Pakets im System verbleiben, die dann von dpkg
vergessen werden.

remove-protected:
Entfernt, selbst wenn das Paket als geschützt gilt (seit dpkg 1.20.1). Geschützte Pakete enthalten
hauptsächlich wichtige System-Boot-Infrastruktur oder werden für benutzerdefinierte, systemweite
Meta-Pakete verwendet. Das Entfernen kann dazu führen, dass das gesamte System nicht mehr bootfähig
ist oder erforderliche Funktionen zum Betrieb verliert, daher mit Vorsicht verwenden.

remove-essential:
Entfernt, selbst wenn das Paket als wesentlich gilt. Wesentliche Pakete enthalten hauptsächlich
sehr grundlegende Unix-Befehle, die für das Paketierungssystem, für den Betrieb des Systems
im Allgemeinen oder während des Bootens erforderlich sind (obwohl letzteres stattdessen in
geschützte Pakete konvertiert werden sollte). Das Entfernen kann dazu führen, dass das gesamte
System nicht mehr funktioniert, daher mit Vorsicht verwenden.

    depends:

Verwandelt alle Abhängigkeitsprobleme in Warnungen. Dies betrifft die Felder „Pre-Depends“ und „Depends“.

    depends-version:

Ignoriert Versionen bei der Überprüfung von Abhängigkeiten. Dies betrifft die Felder „Pre-Depends“ und „Depends“.

    breaks:

Installiert, auch wenn dies ein anderes Paket beschädigen würde (seit dpkg 1.14.6). Dies betrifft das Feld „Breaks“.

    conflicts:

Installiert, auch wenn es mit einem anderen Paket in Konflikt steht. Dies ist gefährlich, da es normalerweise zum Überschreiben einiger Dateien führt. Dies betrifft das Feld „Conflicts“.

    confmiss:

Installiert immer die fehlende Konfigurationsdatei ohne Aufforderung. Dies ist gefährlich, da dies bedeutet, dass eine vorgenommene Änderung (Entfernung) an der Datei nicht beibehalten wird.

    confnew:

Wenn eine Konfigurationsdatei geändert wurde und sich die Version im Paket geändert hat, installiert immer die neue Version ohne Aufforderung, es sei denn, auch --force-confdef ist angegeben, in diesem Fall wird die Standardaktion bevorzugt.

    confold:

Wenn eine Konfigurationsdatei geändert wurde und sich die Version im Paket geändert hat, behält immer die alte Version bei, ohne Aufforderung, es sei denn, auch --force-confdef ist angegeben, in diesem Fall wird die Standardaktion bevorzugt.

    confdef:

Wenn eine Konfigurationsdatei geändert wurde und sich die Version im Paket geändert hat, wählt immer die Standardaktion ohne Aufforderung. Wenn es keine Standardaktion gibt, wird die Aufforderung an den Benutzer eingestellt, es sei denn, --force-confnew oder --force-confold sind ebenfalls angegeben, in diesem Fall wird diese verwendet, um die endgültige Aktion zu bestimmen.

    confask:

Wenn eine Konfigurationsdatei geändert wurde, wird immer angeboten, sie durch die Version im Paket zu ersetzen, auch wenn sich die Version im Paket nicht geändert hat (seit dpkg 1.15.8). Wenn eine der Optionen --force-confnew, --force-confold oder --force-confdef ebenfalls angegeben ist, wird diese verwendet, um die endgültige Aktion zu bestimmen.

    overwrite:

Überschreibt eine Datei eines Pakets mit einer Datei eines anderen Pakets.

    overwrite-dir:

Überschreibt ein Verzeichnis eines Pakets mit einer Datei eines anderen Pakets.

    overwrite-diverted:

Überschreibt eine umgeleitete Datei mit einer nicht umgeleiteten Version.

    statoverride-add:

Überschreibt eine vorhandene Stat-Override, wenn diese hinzugefügt wird (seit dpkg 1.19.5).

    statoverride-remove:

Ignoriert eine fehlende Stat-Override, wenn diese entfernt wird (seit dpkg 1.19.5).

    security-mac(*):

Verwendet plattformspezifische, auf Mandatory Access Controls (MAC) basierende Sicherheit beim Installieren von Dateien in das Dateisystem (seit dpkg 1.19.5). Auf Linux-Systemen verwendet die Implementierung SELinux.

    unsafe-io:

Führt keine sicheren I/O-Operationen beim Entpacken durch (seit dpkg 1.15.8.6). Derzeit bedeutet dies, dass keine Dateisystem-Synchronisierungen vor Dateiumbenennungen durchgeführt werden, was bekanntermaßen zu erheblichen Leistungseinbußen auf einigen Dateisystemen führt. Unglücklicherweise sind dies die Dateisysteme, die die sicheren I/O-Operationen aus dem ersten Anlass benötigen, da ihr unzuverlässiges Verhalten bei abrupten Systemabstürzen zu Dateien mit Null Länge führt.


Hinweis: Für ext4, den Hauptverursacher, sollten Sie stattdessen die Mount-Option `nodelalloc` verwenden,
die sowohl die Leistungsverschlechterung als auch die Datenintegritätsprobleme behebt, letzteres, indem
das Dateisystem keine Dateien mit Null Länge bei abrupten Systemabstürzen erzeugt, wenn Software vor atomaren
Umbenennungen keine Synchronisierungen durchführt.

Warnung: Die Verwendung dieser Option kann die Leistung verbessern, jedoch auf Kosten von Datenverlust. Verwenden Sie sie mit Vorsicht.

script-chrootless:
Führen Sie Wartungsskripte aus, ohne in `instdir` mit `chroot(2)` einzutauchen, auch wenn das Paket diese
Betriebsart nicht unterstützt (seit dpkg 1.18.5).

Warnung: Dies kann Ihr Hostsystem zerstören. Verwenden Sie es mit äußerster Vorsicht.

architecture:
Verarbeiten Sie auch Pakete mit falscher oder fehlender Architektur.

bad-version:
Verarbeiten Sie auch Pakete mit falschen Versionen (seit dpkg 1.16.1).

bad-path:
`PATH` enthält wichtige Programme nicht, daher sind Probleme wahrscheinlich.

not-root:
Versuchen Sie, Dinge zu (de)installieren, auch wenn Sie kein Root-Benutzer sind.

bad-verify:
Installieren Sie ein Paket, auch wenn die Authentizitätsprüfung fehlschlägt.

--ignore-depends=Paket,...
Ignorieren Sie die Abhängigkeitsprüfung für die angegebenen Pakete (tatsächlich wird die Prüfung durchgeführt,
es werden jedoch nur Warnungen über Konflikte ausgegeben, nichts anderes). Dies betrifft die Felder
`Pre-Depends`, `Depends` und `Breaks`.

--no-act, --dry-run, --simulate
Führen Sie alles aus, was ausgeführt werden soll, aber schreiben Sie keine Änderungen. Dies wird verwendet,
um zu sehen, was mit dem angegebenen Befehl passieren würde, ohne tatsächlich etwas zu ändern.

Stellen Sie sicher, dass Sie `--no-act` vor dem Befehl angeben, andernfalls kann es zu unerwünschten Ergebnissen
kommen (z. B. `dpkg --purge foo --no-act` würde zuerst das Paket „foo“ deinstallieren und dann versuchen,
das Paket „--no-act“ zu deinstallieren, obwohl Sie wahrscheinlich erwartet haben, dass nichts passiert).

-R, --recursive
Verarbeiten Sie rekursiv alle regulären Dateien, die dem Muster `*.deb` entsprechen, die in den angegebenen
Verzeichnissen und allen Unterverzeichnissen gefunden wurden. Dies kann mit den Befehlen `-i`, `-A`,
`--install`, `--unpack` und `--record-avail` verwendet werden.

-G
Installieren Sie ein Paket nicht, wenn bereits eine neuere Version desselben Pakets installiert ist. Dies ist
ein Alias für `--refuse-downgrade`.

--admindir=verzeichnis
Legen Sie das Verwaltungsverzeichnis auf `verzeichnis` fest. Dieses Verzeichnis enthält viele Dateien,
die Informationen über den Status installierter oder deinstallierter Pakete usw. enthalten. Standardmäßig
ist dies `/var/lib/dpkg`, wenn `DPKG_ADMINDIR` nicht gesetzt ist.

--instdir=verzeichnis
Legen Sie das Installationsverzeichnis fest, das das Verzeichnis ist, in dem Pakete installiert werden sollen.
`instdir` ist auch das Verzeichnis, das an `chroot(2)` übergeben wird, bevor die Installationsskripte des
Pakets ausgeführt werden, was bedeutet, dass die Skripte `instdir` als Stammverzeichnis sehen. Standardmäßig
ist dies `/`, wenn `DPKG_ROOT` nicht gesetzt ist (seit dpkg 1.21.10).

--root=verzeichnis
Legen Sie das Stammverzeichnis auf `verzeichnis` fest, wodurch das Installationsverzeichnis auf `verzeichnis`
und das Verwaltungsverzeichnis auf `verzeichnis/var/lib/dpkg` gesetzt wird, wenn `DPKG_ROOT` nicht gesetzt ist
(seit dpkg 1.21.10).

-O, --selected-only
Verarbeitet nur die Pakete, die zur Installation ausgewählt wurden. Die eigentliche Markierung erfolgt mit dselect oder durch dpkg, wenn es Pakete behandelt. Wenn beispielsweise ein Paket entfernt wird, wird es zur Deinstallation markiert.

-E, --skip-same-version
Installiert das Paket nicht, wenn die gleiche Version und Architektur des Pakets bereits installiert ist.

Seit dpkg 1.21.10 wird auch die Architektur berücksichtigt, wodurch es möglich wird, Pakete zu aktualisieren oder zusätzliche, nebeneinander installierbare Instanzen mit derselben Version, aber unterschiedlicher Architektur zu installieren.

--pre-invoke=Befehl
--post-invoke=Befehl
Legt einen Aufruf-Hook-Befehl fest, der über „sh -c“ vor oder nach der dpkg-Ausführung für die Aktionen Entpacken, Konfigurieren, Installieren, Nur-Trigger, Entfernen und Bereinigen (seit dpkg 1.15.4) sowie für die Aktionen Architektur hinzufügen und Architektur entfernen (seit dpkg 1.17.19) ausgeführt wird. Diese Option kann mehrmals angegeben werden. Die Reihenfolge, in der die Optionen angegeben werden, wird beibehalten, wobei die Optionen aus den Konfigurationsdateien Vorrang haben. Die Umgebungsvariable DPKG_HOOK_ACTION wird für die Hooks auf die aktuelle dpkg-Aktion gesetzt.

Die Aufruf-Hooks werden nicht ausgeführt, wenn --no-act angegeben wird oder wenn als Nicht-Root-Benutzer ohne --force-not-root ausgeführt wird.

Hinweis: Frontends können dpkg mehrmals pro Aufruf aufrufen, was dazu führen kann, dass die Hooks öfter als erwartet ausgeführt werden.

--path-exclude=Glob-Muster
--path-include=Glob-Muster
Legt ein Glob-Muster als Pfadfilter fest, entweder durch das Ausschließen oder das erneute Einschließen zuvor ausgeschlossener Pfade, die den angegebenen Mustern während der Installation entsprechen (seit dpkg 1.15.8).

Warnung: Beachten Sie, dass Sie durch die ausgeschlossenen Pfade Ihr System möglicherweise vollständig beschädigen können. Verwenden Sie diese Option mit Vorsicht.

Die Glob-Muster verwenden dieselben Platzhalter wie die Shell, wobei „*“ auf eine beliebige Zeichenfolge, einschließlich der leeren Zeichenfolge und auch „/“, passt. Beispielsweise passt „/usr/*/READ*“ zu „/usr/share/doc/package/README“. Wie üblich passt „?“ auf ein einzelnes Zeichen (auch „/“). Und „[` leitet eine Zeichenklasse ein, die eine Liste von Zeichen, Bereichen und Komplementen enthalten kann. Weitere Informationen zum Globbing finden Sie in glob(7). Hinweis: Die aktuelle Implementierung kann mehr Verzeichnisse und symbolische Links als erforderlich erneut einschließen, insbesondere wenn es eine spezifischere erneute Einschließung gibt, um auf der sicheren Seite zu sein und mögliche Entpackungsfehler zu vermeiden. Zukünftige Arbeiten könnten dies beheben.

Dies kann verwendet werden, um alle Pfade mit Ausnahme einiger bestimmter Pfade zu entfernen; ein typischer Fall ist:

--path-exclude=/usr/share/doc/*
--path-include=/usr/share/doc/*/copyright

um alle Dokumentationsdateien mit Ausnahme der Copyright-Dateien zu entfernen.

Diese beiden Optionen können mehrmals und miteinander vermischt angegeben werden. Beide werden in der angegebenen Reihenfolge verarbeitet, wobei die letzte Regel, die auf einen Dateinamen passt, die Entscheidung trifft.

Die Filter werden beim Entpacken der Binärpakete angewendet und haben daher nur Kenntnis über den Typ des aktuell gefilterten Objekts (z. B. eine normale Datei oder ein Verzeichnis) und haben keine Kenntnis darüber, welche Objekte als Nächstes folgen. Da diese Filter Nebeneffekte haben (im Gegensatz zu den Filtern von find(1)), führt das Ausschließen eines exakten Pfadnamens, der zufällig ein Verzeichnisobjekt wie /usr/share/doc ist, nicht zum gewünschten Ergebnis, und nur dieser Pfadname wird ausgeschlossen (was dazu führen könnte, dass er automatisch wieder eingeschlossen wird, wenn der Code dies für erforderlich hält). Alle nachfolgenden Dateien, die sich in diesem Verzeichnis befinden, können nicht entpackt werden.

Hinweis: Stellen Sie sicher, dass die Globs nicht von Ihrer Shell erweitert werden.

--verify-format format-name

Legt das Ausgabeformat für den Befehl --verify fest (seit dpkg 1.17.2).

Das derzeit einzige unterstützte Ausgabeformat ist rpm, das aus einer Zeile für jeden Pfad besteht, der bei einer der Prüfungen fehlgeschlagen ist. Diese Zeilen haben das folgende Format:

missing [c] Pfadname [(Fehlermeldung)]
?M5?????? [c] Pfadname

Die ersten 9 Zeichen werden verwendet, um das Ergebnis der Prüfungen zu melden, entweder ein Literal „missing“, wenn die Datei nicht vorhanden ist oder ihre Metadaten nicht abgerufen werden können, oder eines der folgenden Sonderzeichen, die das Ergebnis für jede Prüfung melden:

„?“ Impliziert, dass die Prüfung nicht durchgeführt werden konnte (fehlende Unterstützung, Dateiberechtigungen usw.).

„.“ Impliziert, dass die Prüfung bestanden wurde.

„A-Za-z0-9“

Impliziert, dass eine bestimmte Prüfung fehlgeschlagen ist. Die folgenden Positionen und alphanumerischen Zeichen werden derzeit unterstützt:

1 „?“

Diese Prüfungen werden derzeit nicht unterstützt und sind immer „?“.

2 „M“

Die Dateimodusprüfung ist fehlgeschlagen (seit dpkg 1.21.0). Da die Pfadnamen-Metadaten derzeit nicht verfolgt werden, kann diese Prüfung nur teilweise durch eine sehr einfache Heuristik für Pfadnamen emuliert werden, die einen bekannten Hashwert haben, was impliziert, dass es sich um reguläre Dateien handeln sollte, wobei die Prüfung fehlschlägt, wenn der Pfadname nicht eine reguläre Datei auf dem Dateisystem ist. Diese Prüfung wird derzeit niemals erfolgreich sein, da nicht genügend Informationen verfügbar sind.

3 „5“

Die Hashwertprüfung ist fehlgeschlagen, was bedeutet, dass sich der Dateiinhalt geändert hat. Dies ist nur eine Integritätsprüfung und sollte nicht als eine Art Sicherheitsprüfung betrachtet werden.

49 „?“

Diese Prüfungen werden derzeit nicht unterstützt und sind immer „?“.

Die Zeile wird von einem Leerzeichen und einem Attributzeichen gefolgt. Das folgende Attributzeichen wird unterstützt:

„c“ Der Pfadname ist eine Konfigurationsdatei.

Schließlich folgt ein weiteres Leerzeichen und der Pfadname.

Falls der Eintrag vom Typ „missing“ war und die Datei tatsächlich nicht auf dem Dateisystem vorhanden war, dann wird die Zeile von einem Leerzeichen und der Fehlermeldung in Klammern gefolgt.

--status-fd n

Sendet maschinenlesbare Paketstatus- und Fortschrittsinformationen an die Dateideskriptor-Nummer n. Diese Option kann mehrmals angegeben werden. Die Informationen werden in der Regel pro Zeile in einem der folgenden Formate ausgegeben:


status: package: status

Paketstatus geändert; der Status entspricht dem, der in der Statusdatei angegeben ist.

status: package : error : extended-error-message

Ein Fehler ist aufgetreten. Mögliche Zeilenumbrüche in extended-error-message werden vor der Ausgabe in Leerzeichen umgewandelt.

status: file : conffile-prompt : 'real-old' 'real-new' useredited distedited

Dem Benutzer wird eine Frage zu einer Konfigurationsdatei gestellt.

processing: stage: package

Wird unmittelbar bevor eine Verarbeitungsphase beginnt gesendet. stage ist eines von upgrade, install (beide werden vor dem Auspacken gesendet), configure, trigproc, disappear, remove, purge.

--status-logger=command

Sendet maschinenlesbare Paketstatus- und Fortschrittsinformationen an die Standardeingabe des Shell-Befehls, die mit „sh -c“ ausgeführt werden soll (seit dpkg 1.16.0). Diese Option kann mehrmals angegeben werden. Das Ausgabeformat ist das gleiche wie bei --status-fd.

Die Statuslogger werden nicht ausgeführt, wenn --no-act angegeben ist oder wenn die Ausführung als Nicht-Root-Benutzer ohne --force-not-root erfolgt.

--log=filename

Protokolliert Statusänderungen und Aktionen in der Datei filename anstelle der Standarddatei /var/log/dpkg.log. Wenn diese Option mehrmals angegeben wird, wird die letzte Datei verwendet. Die Protokollmeldungen haben folgendes Format:

YYYY-MM-TT HH:MM:SS startup type command

Für jede dpkg-Aufruf, bei dem type entweder archives (mit einem Befehl von unpack oder install) oder packages (mit einem Befehl von configure, triggers-only, remove oder purge) ist.

YYYY-MM-TT HH:MM:SS status state pkg installed-version

Für Statusänderungen.

YYYY-MM-TT HH:MM:SS action pkg installed-version available-version

Für Aktionen, bei denen action eines von install, upgrade, configure, trigproc, disappear, remove oder purge ist.

YYYY-MM-TT HH:MM:SS conffile filename decision

Für Konfigurationsdateiveränderungen, bei denen decision entweder install oder keep ist.

--robot

Verwendet ein maschinenlesbares Ausgabeformat. Dies bietet eine Schnittstelle für Programme, die die Ausgabe einiger Befehle analysieren müssen, die andernfalls kein maschinenlesbares Ausgabeformat erzeugen. Es wird keine Lokalisierung verwendet, und die Ausgabe wird so geändert, dass sie leichter zu analysieren ist.

Der derzeit einzige unterstützte Befehl ist --version.

--no-pager

Deaktiviert die Verwendung eines Pagers, wenn Informationen angezeigt werden (seit dpkg 1.19.2).

--no-debsig

Versucht nicht, Paketunterschriften zu überprüfen.

--no-triggers

Führt in dieser Ausführung keine Trigger aus (seit dpkg 1.14.17), aber Aktivierungen werden weiterhin protokolliert. Wenn diese Option zusammen mit --configure package oder --triggers-only package verwendet wird, wird das Postinst-Skript des benannten Pakets trotzdem ausgeführt, auch wenn nur eine Trigger-Ausführung erforderlich ist. Die Verwendung dieser Option kann dazu führen, dass Pakete in den falschen Zuständen triggers-awaited und triggers-pending verbleiben. Dies kann später durch Ausführen von dpkg --configure --pending behoben werden.

--triggers

Macht ein vorheriges --no-triggers rückgängig (seit dpkg 1.14.17).

ABBRUCHSTATUS

0 Der angeforderte Befehl wurde erfolgreich ausgeführt. Oder ein Überprüfungs- oder Assertionsbefehl hat „true“ zurückgegeben.

1 Eine Prüf- oder Assert-Anweisung hat „false“ zurückgegeben.

2 Ein schwerwiegender oder nicht behebbbarer Fehler aufgrund der ungültigen Verwendung von Befehlszeilenargumenten oder aufgrund von Interaktionen mit dem System, wie z. B. Zugriff auf die Datenbank, Speicherzuweisungen usw.

UMGEBUNG

Externe Umgebung

PATH
Diese Variable muss in der Umgebung definiert sein und auf die Systempfade verweisen, in denen sich mehrere erforderliche Programme befinden. Wenn sie nicht gesetzt ist oder die Programme nicht gefunden werden, bricht dpkg ab.

HOME
Wenn gesetzt, verwendet dpkg es als Verzeichnis, aus dem die benutzerspezifische Konfigurationsdatei gelesen wird.

TMPDIR
Wenn gesetzt, verwendet dpkg es als Verzeichnis, in dem temporäre Dateien und Verzeichnisse erstellt werden.

SHELL
Das Programm dpkg wird ausgeführt, wenn eine neue interaktive Shell gestartet oder ein Befehl über eine Shell ausgeführt wird.

PAGER
DPKG_PAGER
Das Programm, das dpkg ausführt, wenn ein Pager ausgeführt wird. Dies geschieht mit „$SHELL -c“, z. B. beim Anzeigen von Konfigurationsdatei-Unterschieden. Wenn SHELL nicht gesetzt ist, wird stattdessen „sh“ verwendet.

DPKG_PAGER überschreibt die Umgebungsvariable PAGER (seit dpkg 1.19.2). Wenn keines der in DPKG_PAGER oder PAGER angegebenen Programme vorhanden ist, werden die folgenden Programme in der Reihenfolge ausprobiert (seit dpkg 1.22.12): der Standard-Pager, dann [less]({filename}../../less)(1), more(1) und schließlich [cat]({filename}../../cat)(1).

DPKG_COLORS
Legt den Farbmodus fest (seit dpkg 1.18.5). Die derzeit akzeptierten Werte sind: auto (Standard), always und never.

DPKG_NLS
Wenn gesetzt, wird es verwendet, um zu entscheiden, ob die Unterstützung für die lokale Sprache, auch bekannt als Internationalisierungs- (oder i18n-)Unterstützung, aktiviert werden soll (seit dpkg 1.22.7). Die akzeptierten Werte sind: 0 und 1 (Standard).

DPKG_DEBUG
Legt die Debug-Maske (seit dpkg 1.21.10) anhand eines oktalen Wertes fest. Die derzeit akzeptierten Flags sind in der Option --debug beschrieben.

DPKG_FORCE
Legt die Force-Flags fest (seit dpkg 1.19.5). Wenn diese Variable vorhanden ist, werden keine integrierten Standard-Force-Einstellungen angewendet. Wenn die Variable vorhanden ist, aber leer ist, werden alle Force-Flags deaktiviert.

DPKG_ROOT
Wenn gesetzt und die Optionen --instdir oder --root nicht angegeben wurden, wird es als Dateisystem-Root-Verzeichnis verwendet (seit dpkg 1.21.10).

DPKG_ADMINDIR
Wenn gesetzt und die Optionen --admindir oder --root nicht angegeben wurden, wird es als dpkg-Administrativverzeichnis verwendet (seit dpkg 1.20.0).

DPKG_FRONTEND_LOCKED
Wird von einem Paketmanager-Frontend gesetzt, um dpkg mitzuteilen, dass es die Frontend-Sperre nicht erwerben soll (seit dpkg 1.19.1).

DPKG_PATH_PASSWD
Legt den Pfad zur System-Passwortdatei fest. Dieser Pfad ist relativ zum --root-Verzeichnis. Der Standard ist /etc/passwd.

Seit dpkg 1.22.16.

DPKG_PATH_GROUP
Legt den Pfad zur Systemgruppen-Datei fest. Dieser Pfad ist relativ zum --root-Verzeichnis. Der Standard ist /etc/group.

Seit dpkg 1.22.16.

Interne Umgebung

LESS
Wird von dpkg auf „-FRSXMQ“ gesetzt, wenn es nicht bereits gesetzt ist, wenn ein Pager gestartet wird (seit dpkg 1.19.2). Um das Standardverhalten zu ändern, kann diese Variable auf einen anderen Wert oder eine leere Zeichenfolge voreingestellt werden, oder die Variablen PAGER oder DPKG_PAGER können gesetzt werden, um bestimmte Optionen mit „-+“ zu deaktivieren, z. B. DPKG_PAGER="less -+F".

DPKG_ROOT

Von dpkg in der Umgebung des Wartungsskripts definiert, um anzugeben, auf welche Installation sich das Skript bezieht (seit dpkg 1.18.5). Der Wert soll vor jeden Pfad gesetzt werden, auf den die Wartungsskripte zugreifen. Während des normalen Betriebs ist diese Variable leer. Wenn Pakete in ein anderes Instdir installiert werden, ruft dpkg normalerweise Wartungsskripte unter Verwendung von chroot(2) auf und lässt diese Variable leer, aber wenn --force-script-chrootless angegeben wird, wird der chroot(2)-Aufruf übersprungen und diese Variable wird auf instdir gesetzt (was nicht leer sein wird).

DPKG_ADMINDIR

Von dpkg in der Umgebung des Wartungsskripts definiert, um das zu verwendende dpkg-Verwaltungsverzeichnis anzugeben (seit dpkg 1.16.0). Diese Variable ist immer auf den aktuellen Wert von --admindir gesetzt.

DPKG_FORCE

Von dpkg in der Umgebung der Unterprozesse definiert, um die aktuell aktivierten Namen der Force-Optionen durch Kommas getrennt anzugeben (seit dpkg 1.19.5).

DPKG_SHELL_REASON

Von dpkg in der Shell definiert, die beim Aufforderung zur Konfigurationsdatei aufgerufen wird, um die Situation zu untersuchen (seit dpkg 1.15.6). Aktueller gültiger Wert: conffile-prompt.

DPKG_CONFFILE_OLD

Von dpkg in der Shell definiert, die beim Aufforderung zur Konfigurationsdatei aufgerufen wird, um die Situation zu untersuchen (seit dpkg 1.15.6). Enthält den Pfad zur alten Konfigurationsdatei.

DPKG_CONFFILE_NEW

Von dpkg in der Shell definiert, die beim Aufforderung zur Konfigurationsdatei aufgerufen wird, um die Situation zu untersuchen (seit dpkg 1.15.6). Enthält den Pfad zur neuen Konfigurationsdatei.

DPKG_HOOK_ACTION

Von dpkg in der Shell definiert, die beim Ausführen einer Hook-Aktion aufgerufen wird (seit dpkg 1.15.4). Enthält die aktuelle dpkg-Aktion.

DPKG_RUNNING_VERSION

Von dpkg in der Umgebung des Wartungsskripts definiert, um die Version der aktuell ausgeführten dpkg-Instanz anzugeben (seit dpkg 1.14.17).

DPKG_MAINTSCRIPT_PACKAGE

Von dpkg in der Umgebung des Wartungsskripts definiert, um den (nicht-architekturabhängigen) Paketnamen des verarbeiteten Pakets anzugeben (seit dpkg 1.14.17).

DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT

Von dpkg in der Umgebung des Wartungsskripts definiert, um die Paketreferenzanzahl anzugeben, d. h. die Anzahl der Paketinstanzen mit einem Status, der größer als „nicht installiert“ ist (seit dpkg 1.17.2).

DPKG_MAINTSCRIPT_ARCH

Von dpkg in der Umgebung des Wartungsskripts definiert, um die Architektur anzugeben, für die das Paket erstellt wurde (seit dpkg 1.15.4).

DPKG_MAINTSCRIPT_NAME

Von dpkg in der Umgebung des Wartungsskripts definiert, um den Namen des ausgeführten Skripts anzugeben, entweder preinst, postinst, prerm oder postrm (seit dpkg 1.15.7).

DPKG_MAINTSCRIPT_DEBUG

Von dpkg in der Umgebung des Wartungsskripts definiert, um einen Wert anzugeben („0“ oder „1“), der angibt, ob die Fehlersuche (mit der Option --debug) für die Wartungsskripte angefordert wurde (seit dpkg 1.4).

DATEIEN

/etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*

Konfigurationsfragmentdateien (seit dpkg 1.15.4).


/etc/dpkg/dpkg.cfg

Konfigurationsdatei mit Standardoptionen.

/var/log/dpkg.log

Standard-Protokolldatei (siehe /etc/dpkg/dpkg.cfg und Option --log).

Die anderen unten aufgeführten Dateien befinden sich in ihren Standardverzeichnissen. Um die Speicherorte dieser Dateien zu ändern, verwenden Sie die Option --admindir.

/var/lib/dpkg/available

Liste der verfügbaren Pakete.

/var/lib/dpkg/status

Status der verfügbaren Pakete. Diese Datei enthält Informationen darüber, ob ein Paket zum Löschen markiert ist oder nicht, ob es installiert ist oder nicht usw. Weitere Informationen finden Sie im Abschnitt „INFORMATIONEN ÜBER PAKETE“.

Die Statusdatei wird täglich in /var/backups gesichert. Dies kann nützlich sein, wenn sie aufgrund von Dateisystemproblemen verloren geht oder beschädigt wird.

Das Format und der Inhalt eines Binärpakets werden in deb(5) beschrieben.

Dateinamen des Dateisystems

Während des Entpackens und der Konfiguration verwendet dpkg verschiedene Dateinamen für Backup- und Rollback-Zwecke. Im Folgenden wird vereinfacht erläutert, wie diese Dateinamen während der Paketinstallation verwendet werden.

*.dpkg-new

Während des Entpackens extrahiert dpkg neue Dateisystemobjekte in den Pfad pathname.dpkg-new (mit Ausnahme von vorhandenen Verzeichnissen oder symbolischen Links zu Verzeichnissen, die übersprungen werden). Sobald dies geschehen ist und die alten Objekte gesichert wurden, werden die Objekte in pathname umbenannt.

*.dpkg-tmp

Während des Entpackens erstellt dpkg Backups der alten Dateisystemobjekte in pathname.dpkg-tmp, nachdem die neuen Objekte extrahiert wurden. Diese Backups werden entweder als Umbenennung für Verzeichnisse (aber nur, wenn sie den Dateityp ändern), als neue symbolische Link-Kopie für symbolische Links oder als Hardlink für alle anderen Dateisystemobjekte durchgeführt, mit Ausnahme von Konfigurationsdateien, die nicht gesichert werden, da sie zu einem späteren Zeitpunkt verarbeitet werden.

Falls ein Rollback erforderlich ist, werden diese Backups verwendet, um den vorherigen Inhalt der Objekte wiederherzustellen. Diese werden automatisch gelöscht, nachdem die Installation abgeschlossen ist.

*.dpkg-old

Während der Konfiguration kann dpkg beim Installieren einer neuen Version ein Backup der vorherigen, geänderten Konfigurationsdatei in pathname.dpkg-old erstellen.

*.dpkg-dist

Während der Konfiguration kann dpkg beim Beibehalten der alten Version ein Backup der neuen, unveränderten Konfigurationsdatei in pathname.dpkg-dist erstellen.

SICHERHEIT

Jede Operation, die Schreibzugriff auf die Datenbank oder das Dateisystem benötigt, gilt als privilegierte Operation, die möglicherweise eine Eskalation von Root-Rechten ermöglicht. Diese Operationen dürfen niemals an einen nicht vertrauenswürdigen Benutzer delegiert oder auf nicht vertrauenswürdige Pakete angewendet werden, da dies einem nicht vertrauenswürdigen Benutzer Root-Zugriff auf das System ermöglichen könnte.

Einige Operationen (wie z. B. die Paketüberprüfung) benötigen möglicherweise Root-Rechte, um auf Dateien im Dateisystem zugreifen zu können, die aufgrund eingeschränkter Berechtigungen normalerweise nicht zugänglich wären, sollten aber ansonsten normal funktionieren und entsprechende Meldungen in diesen Fällen ausgeben.

Abfrageoperationen sollten niemals Root-Rechte erfordern, und das Delegieren ihrer Ausführung an nicht privilegierte Benutzer über einen Befehl zum Erlangen von Root-Rechten kann Sicherheitsimplikationen haben (wie z. B. eine Eskalation von Privilegien), beispielsweise wenn ein Pager automatisch durch das Tool aufgerufen wird.


Siehe auch den Abschnitt SICHERHEIT der Handbuchseiten dpkg-deb(1) und dpkg-split(1).

FEHLER

--no-act liefert normalerweise nicht genügend Informationen.

BEISPIELE

Um die installierten Pakete aufzulisten, die mit dem Editor vi(1) zusammenhängen (beachten Sie, dass dpkg-query standardmäßig nicht mehr die verfügbare Datei lädt, und die Option dpkg-query --load-avail stattdessen verwendet werden sollte):

dpkg -l '*vi*'

Um die Einträge in /var/lib/dpkg/available von zwei Paketen anzuzeigen:

dpkg --print-avail vim neovim | less

Um die Paketliste selbst zu durchsuchen:

dpkg --print-avail | less

Um ein installiertes Neovim-Paket zu entfernen:

dpkg -r neovim

Um ein Paket zu installieren, müssen Sie es zuerst in einem Archiv oder auf einem Medium finden. Wenn Sie ein Archiv verwenden, das auf einer Pool-Struktur basiert, ist es ausreichend, den Archivbereich und den Namen des Pakets zu kennen, um den Pfad zu ermitteln:

dpkg -i /media/bdrom/pool/main/v/vim/vim_9.0.2018-1_amd64.deb

Um eine lokale Kopie der Paketselektionsstatus zu erstellen:

dpkg --get-selections >myselections

Sie können diese Datei auf einen anderen Computer übertragen, und nachdem Sie dort die verfügbare Datei mit Ihrem Paketmanager-Frontend (siehe [https://wiki.debian.org/Teams/Dpkg/FAQ#set-selections] für weitere Details) aktualisiert haben, z. B.:

apt-cache dumpavail | dpkg --merge-avail

können Sie sie mit installieren:

dpkg --clear-selections
dpkg --set-selections <myselections

Beachten Sie, dass dies nicht tatsächlich etwas installiert oder entfernt, sondern nur den Selektionsstatus der angeforderten Pakete setzt. Sie benötigen eine andere Anwendung, um die angeforderten Pakete tatsächlich herunterzuladen und zu installieren. Führen Sie beispielsweise apt-get dselect-upgrade aus.

Normalerweise bietet dselect(1) eine bequemere Möglichkeit, die Paketselektionsstatus zu ändern.

ZUSÄTZLICHE FUNKTIONALITÄT

Zusätzliche Funktionalität kann durch die Installation eines der folgenden Pakete erreicht werden: apt, aptitude und debsig-verify.

SIEHE AUCH

aptitude(8), apt(8), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5) und dpkg-reconfigure(8).

AUTOREN

Siehe /usr/share/doc/dpkg/THANKS für die Liste der Personen, die zu dpkg beigetragen haben.