DPKG

NAME
ÜBERSICHT
WARNUNG
BESCHREIBUNG
INFORMATIONEN ÜBER PAKETE
AKTIONEN
OPTIONEN
DATEIEN
UMGEBUNGSVARIABLEN
BEISPIELE
ZUSÄTZLICHE FUNKTIONALITÄT
SIEHE AUCH
FEHLER
AUTOREN

NAME

dpkg - Ein Paket-Manager auf mittlerer Ebene für Debian

ÜBERSICHT

dpkg [Optionen] Aktion

WARNUNG

Dieses Handbuch ist für Benutzer gedacht, die dpkgs Kommandozeilenoptionen und Paketzustände detailierter als in dpkg --help gegeben verstehen möchten.

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

BESCHREIBUNG

dpkg ist ein Werkzeug mittlerer Ebene, um Debian Pakete zu installieren, zu bauen, zu entfernen und zu verwalten. Die primäre und benutzerfreundlichere Oberfläche für dpkg ist dselect(8). dpkg selbst wird vollständig über Kommandozeilenparameter gesteuert, die aus genau einer Aktion und keiner oder mehreren Optionen bestehen. Der Aktion-Parameter sagt dpkg, was zu tun ist, und Optionen steuern das Verhalten der Aktion auf bestimmte Weise.

dpkg kann auch als Front-End für dpkg-deb benutzt werden. Die folgenden sind dpkg-deb Aktionen, und wenn sie vorkommen, startet dpkg einfach dpkg-deb und übergibt ihm die Parameter:

    -b, --build,
    -c, --contents,
    -I, --info,
    -f, --field,
    -e, --control,
    -x, --extract,
    -X, --vextract, und
    --fsys-tarfile.

Siehe bitte dpkg-deb(1) für Informationen über diese Aktionen.

INFORMATIONEN ÜBER PAKETE

dpkg verwaltet einige nützliche Informationen über verfügbare Pakete. Die Information ist in drei Klassen unterteilt: Zustände (states), Selektions-Zustände (selection states) und Markierungen (flags). Diese Werte sind gedacht, um hauptsächlich von dselect geändert zu werden.

PAKET-ZUSTÄNDE

installiert (installed)

Das Paket ist entpackt und sauber konfiguriert.

halb-installiert (half-installed)

Die Installation des Paketes wurde begonnen, aber aus gewissen Gründen nicht beendet.

nicht installiert (not-installed)

Das Paket ist auf dem System nicht installiert.

entpackt (unpacked)

Das Paket ist entpackt, aber nicht konfiguriert.

halb konfiguriert (half-configured)

Das Paket ist entpackt und die Konfiguration wurde begonnen, aber aus gewissen Gründen noch nicht beendet.

Konfigurationsdateien (config-files)

Nur die Konfigurationsdateien des Pakets liegen auf dem System.

PAKET-SELEKTIONS-ZUSTÄNDE

installieren (install)

Das Paket ist zur Installation ausgewählt.

entfernen (deinstall)

Das Paket ist zum Entfernen ausgewählt (d.h. wir wollen alle Dateien außer Konfigurationsdateien entfernen).

vollständig entfernen (purge)

Das Paket wurde zum vollständigen Entfernen ausgewählt (d.h. wir wollen alles entfernen, einschließlich der Konfigurationsdateien).

PAKET-MARKIERUNGEN

halten (hold)

Ein Paket, das auf »halten« gesetzt wurde, wird nicht von dpkg bearbeitet, solange dies nicht mit der Option --force-hold erzwungen wird.

Neuinstallation erforderlich (reinst-required)

Ein Paket, das so markiert ist, ist beschädigt und benötigt eine Neuinstallation. Solch ein Paket kann nicht entfernt werden, solange dies nicht mit der Option --force-remove-reinstreq erzwungen wird.

AKTIONEN

dpkg -i | --install Paket-Datei ...

Installiere das Paket. Wenn die Option --recursive oder -R angegeben ist, muss Paket-Datei stattdessen auf ein Verzeichnis verweisen.

Die Installation besteht aus den folgenden Schritten:
1.
Die Kontrolldateien des neuen Paketes extrahieren.
2.
Wenn vor der Installation eine andere Version desselben Paketes installiert war, das prerm Skript des alten Paketes ausführen.
3.
Das preinst Skript ausführen, wenn vom Paket eines bereit gestellt wird.
4.
Die neuen Dateien entpacken, und gleichzeitig die alten Dateien sichern, so dass sie wiederhergestellt werden können, wenn etwas schief läuft.
5.
Wenn vor der neuen Installation eine andere Version desselben Paketes installiert war das postrm Skript des alten Paketes ausführen. Beachte, dass dieses Skript nach dem preinst Skript des neuen Paketes ausgeführt wird, weil neue Dateien zur gleichen Zeit geschrieben werden, zu der alte Dateien entfernt werden.
6.
Das Paket konfigurieren. Siehe --configure für detailierte Informationen, wie dies geschieht.

dpkg --unpack Paket-Datei ...

Das Paket entpacken, aber nicht konfigurieren. Wenn die Option --recursive oder -R angegeben ist, muss Paket-Datei stattdessen auf ein Verzeichnis verweisen.

dpkg --configure Paket ... | -a | --pending

Ein entpacktes Paket (neu) konfigurieren. Wenn statt eines Paketes -a oder --pending angegeben werden, werden alle entpackten Pakete konfiguriert, die noch nicht konfiguriert sind.

Konfigurieren besteht aus den folgenden Schritten:
1.
Die Konfigurationsdateien entpacken, und gleichzeitig die alten Konfigurationsdateien sichern, so dass sie wiederhergestellt werden können, wenn etwas schief läuft.
2.
Das postinst Skript ausführen, wenn vom Paket bereit gestellt.

dpkg -r | --remove | -P | --purge Paket ... | -a | --pending

Ein installiertes Paket entfernen. -r oder --remove entfernt alles außer Konfigurationsdateien. Dies kann verhindern, dass man das Paket neu konfigurieren muss, wenn man es später erneut installiert. (Konfigurationsdateien sind die Dateien, die in der Kontrolldatei debian/conffiles gelistet sind.) -P oder --purge entfernt alles, einschließlich Konfigurationsdateien. Wenn -a oder --pending statt eines Paketnamens angegeben wird, werden alle entpackten Pakete, die in der Datei /var/lib/dpkg/status zum Entfernen oder vollständigen Entfernen markiert sind, entfernt beziehungsweise vollständig entfernt.

Entfernen eines Pakets besteht aus den folgenden Schritten:
1.
Das prerm Skript ausführen.
2.
Die installierten Dateien entfernen.
3.
Das postrm Skript ausführen.

dpkg --update-avail | --merge-avail Packages-Datei

dpkgs und dselects Vorstellung aktualisieren, welche Pakete verfügbar sind. Mit der Aktion --merge-avail wird die alte Information mit der Information aus der Packages-Datei kombiniert. Mit der Aktion --update-avail wird die alte Information durch die Information aus der Packages-Datei ersetzt. Die mit Debian verteilte Packages-Datei heißt einfach Packages. dpkg hält seine Aufzeichnung verfügbarer Pakete in der Datei /var/lib/dpkg/available. Ein einfacheres Ein-Schuss-Kommando, um die Datei available zu holen und zu aktualisieren ist dselect update.

dpkg -A | --record-avail Paket_Datei ...

dpkgs und dselects Vorstellung, welche Pakete verfügbar sind, mit Information aus dem Paket Paket_Datei aktualisieren. Wenn die Option --recursive oder -R angegeben ist, muss Paket_Datei statt dessen auf ein Verzeichnis verweisen.

dpkg --forget-old-unavail

Nicht installierte und nicht verfügbare Pakete vergessen.

dpkg --clear-avail

Die bestehende Information über verfügbare Pakete löschen.

dpkg -C | --audit

Sucht auf dem System nach Paketen, die nur teilweise installiert wurden. dpkg wird vorschlagen, was es mit ihnen machen wird, um sie zum laufen zu bringen.

dpkg --get-selections [Muster...]

Hole eine Liste der Paket-Auswahl, und schreibe sie auf die Standardausgabe.

dpkg --set-selections

Setze Paket-Auswahl wie in der von der Standardeingabe eingelesenen Datei.

dpkg --yet-to-unpack

Sucht nach Paketen, die zur Installation ausgewählt wurden, die aber aus gewissen Gründen noch nicht installiert wurden.

dpkg --print-architecture

Gibt die Ziel-Architektur aus (z.B. »i386«). Diese Option benutzt ggc.

dpkg --print-gnu-build-architecture

Gibt GNU Version der Ziel-Architektur aus (z.B. »i486«).

dpkg --print-installation-architecture

Gibt Host-Architektur für Installation aus.

dpkg --compare-versions Ver1 Op Ver2

Vergleiche Versionsnummern. Dabei ist Op ein binärer Operator. dpkg gibt Erfolg zurück (Ergebnis gleich null), wenn die angebene Bedingung erfüllt ist, und ansonsten Misserfolg (Ergebnis ungleich null). Es gibt zwei Gruppen von Operatoren, die sich unterscheiden wie sie ein leeres Ver1 oder Ver2 behandeln. Diese behandeln eine leere Version als früher als irgendeine Version: lt le eq ne ge gt. Diese behandeln eine leere Version als später als irgendeine Version: lt-nl le-nl ge-nl gt-nl. Diese wurden nur aus Kompatibilität mit der Kontrol-Datei-Syntax bereitgestellt: < << <= = >= >> >.

dpkg --command-fd n

Nimmt eine Reihe von Kommandos auf dem Eingabe-Datei-Deskriptor an. Man beachte: zusätzliche Optionen, die auf der Kommandozeile oder über diesen Datei-Deskriptor gesetzt wurden, werden für nachfolgende Kommandos, die während dieses Durchgangs ausgeführt werden, nicht zurückgesetzt.

dpkg --help

Zeigt eine kurze Hilfe an.

dpkg --force-help

Gibt Hilfe zu den --force-ding Optionen aus.

dpkg -Dh | --debug=help

Gibt Hilfe zu Debug-Optionen aus.

dpkg --licence | dpkg --license

Zeigt die dpkg-Lizenz an.

dpkg --version

Zeigt dpkgs Versionsinformation an.

dpkg-deb-Aktionen

Siehe dpkg-deb(1) für mehr Informationen über die folgenden Aktionen.

dpkg -b | --build Verzeichnis [Dateiname]
    Baue ein .deb-Paket.
dpkg -c | --contents Dateiname
    Liste Inhalt eines .deb-Paketes auf.
dpkg -e | --control Dateiname [Verzeichnis]
    Extrahiere Kontroll-Information aus einem Paket.
dpkg -x | --extract Dateiname Verzeichnis
    Extrahiere die Dateien, die das Paket enthält.
dpkg -f | --field  Dateiname [Kontroll-Feld] ...
    Zeige Kontroll-Feld(er) des Pakets an.
dpkg --fsys-tarfile Dateiname
    Zeige die Dateisystem tar-Datei, die in einem Debian Paket
    enthalten ist, an.
dpkg -I | --info Dateiname [Kontroll-Datei]
    Zeige Informationen über ein Paket.
dpkg -X | --vextract Dateiname Verzeichnis
    Extrahiere ein Paket und zeige die enthaltenen Dateinamen an.

dpkg-query-Aktionen

Siehe dpkg-query(1) für mehr Informationen über die folgenden Aktionen.

dpkg -l | --list Paket-Namen-Muster ...
    Liste Pakete auf, die auf das gegebene Muster passen.
dpkg -s | --status Paket-Name ...
    Berichte Status des bezeichneten Paketes.
dpkg -L | --listfiles Paket ...
    Liste aus Paket auf das System installierte Dateien auf.
dpkg -S | --search Dateinamen-Suchmuster ...
    Suche unter den installierten Paketen nach einem Dateinamen.
dpkg -p | --print-avail Paket
    Zeige Details über Paket an, wie in /var/lib/dpkg/available
    zu finden.

OPTIONEN

Alle Optionen können sowohl auf der Kommandozeile wie auch in der dpkg Konfigurationsdatei /etc/dpkg/dpkg.cfg angegeben werden. Jede Zeile in der Konfigurationsdatei ist entweder eine Option (genau diesselbe wie die Kommandozeilenoption, aber ohne führende Bindestriche) oder ein Kommentar (wenn sie mit dem #-Zeichen beginnt).

--abort-after=Nummer

Ändere nach wievielen Fehlern dpkg abbricht. Die Voreinstellung ist 50.

-B|--auto-deconfigure

Wenn ein Paket entfernt wird besteht die Möglichkeit, dass ein anderes installiertes Paket von dem entfernten abhängig ist. Das Angeben dieser Option verursacht eine automatische Dekonfiguration des Paketes, welches von dem entfernten abhängt.

-Doktal | --debug=oktal

Aktiviere Debuggen. Oktal wird durch bitweise Veroderung gewünschter Werte aus der nachfolgenden Liste gebildet. Man beachte, dass sich diese Werte in zukünftigen Versionen ändern können. -Dh oder --debug=help zeigt diese Werte an.

 Nummer   Beschreibung
      1   Allgemein hilfreiche Fortschrittsinformationen
      2   Aufruf und Status von Betreuer-Skripten
     10   Ausgabe zu jeder verarbeiteten Datei
    100   Viel Ausgabe zu jeder verarbeiteten Datei
     20   Ausgabe zu jeder Konfigurationsdatei
    200   Viel Ausgabe zu jeder Konfigurationsdatei
     40   Abhängigkeiten und Kollisionen
    400   Viel Ausgabe zu Abhängigkeiten und Kollisionen
   1000   Viel Gefasel z.B. zum dpkg/info-Verzeichnis
   2000   Irrsinnige Mengen von Gefasel

--force-Dinge | --no-force-Dinge | --refuse-Dinge

Erzwinge oder verweigere (no-force und refuse bedeuten dasselbe) einige Dinge. Dinge ist eine durch Kommata getrennte Liste der nachfolgend angegeben Dinge. --force-help zeigt eine diese Dinge beschreibende Nachricht an. Mit (*) markierte Dinge werden per Voreinstellung erzwungen.

Warnung: Diese Optionen sind hauptsächlich gedacht, um nur von Experten benutzt zu werden. Sie anzuwenden, ohne vollständig ihre Wirkung zu verstehen, kann das ganze System verletzen.

all: Schaltet alle Zwangsoptionen ein (oder aus).

auto-select(*): Selektiere Pakete, um sie zu installieren, und deselektiere Pakete, um sie zu Entfernen.

downgrade(*): Ein Paket installieren, selbst wenn bereits eine neuere Version installiert ist.

Warnung: Zur Zeit prüft dpkg beim Downgrade keine Abhängigkeiten und wird deshalb nicht warnen, wenn beim Downgrade Abhängigkeiten eines anderen Paketes verletzt werden. Dies kann ernsthafte Seiteneffekte haben, das Downgrade essentieller Systemkomponenten kann sogar das ganze System unbenutzbar machen. Man benutze es mit Vorsicht.

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

hold: Bearbeite Pakete, sogar wenn sie als "halten" markiert sind.

remove-reinstreq: Entferne ein Paket, sogar wenn es kaputt und mit "Reinstallation erforderlich" markiert ist. Auf diese Weise können z.B. Teile des Paketes auf dem System zurückbleiben, die dann von dpkg vergessen werden.

remove-essential: Entfernen, sogar wenn das Paket als essentiell betrachtet wird. Essentielle Pakete enthalten hauptsächlich die grundlegendsten Unix Kommandos. Sie zu entfernen könnte verursachen, dass das ganze System aufhört zu arbeiten. Man benutze es daher mit Vorsicht.

depends: Mache alle Abhängigkeitsprobleme zu Warnungen.

depends-version: Beachte keine Versionen beim Prüfen von Abhängigkeiten.

conflicts: Installiere, sogar wenn es mit einem anderen Paket einen Konflikt hat. Dies ist gefährlich, weil es üblicherweise das Überschreiben einiger Dateien verursacht.

confmiss: Installiere immer eine fehlende Konfigurationsdatei. Dies ist gefährlich, weil es bedeutet, eine Veränderung (das Entfernen) der Datei nicht beizubehalten.

confnew: Wenn eine Konfigurationsdatei verändert wurde, installiere immer die neue Version ohne nachzufragen, solange nicht auch --force-confdef angegeben ist, in welchem Falle die voreingestellte Aktion bevorzugt wird.

confold: Wenn eine Konfigurationsdatei verändert wurde, behalte immer die alte Version bei ohne nachzufragen, solange nicht auch --force-confdef angegeben ist, in welchem Falle die voreingestellte Aktion bevorzugt wird.

confdef: Wenn eine Konfigurationsdatei verändert wurde, wähle immer die voreingestellte Aktion. Wenn es keine voreingestellte Aktion gibt, wird es anhalten um den Benutzer zu fragen, solange nicht auch --force-confnew oder --force-confold gegeben wurden, in welchem Falle es dies benutzt, um die entgültige Aktion zu entscheiden.

overwrite: Überschreibe Datei eines Paketes mit Datei eines anderen.

overwrite-dir: Überschreibe Verzeichnis eines Paketes mit Datei eines anderen.

overwrite-diverted: Überschreibe eine umgelenkte Datei mit einer nicht umgelenkten Version.

architecture: Bearbeite sogar Pakete mit der falschen Architektur.

bad-path: In PATH fehlen wichtige Programme, so dass Probleme wahrscheinlich sind.

not-root: Versuche sogar als nicht-root Sachen zu (de)installieren.

bad-verify: Installiere ein Paket sogar, wenn es bei der Authentizitätsprüfung scheitert.

--ignore-depends=Paket,...

Ignoriere Abhängigkeitsprüfung für angegebene Pakete (tatsächlich wird die Prüfung durchgeführt, aber es werden nur Warnungen über Konflikte ausgegeben, nichts anderes).

--new | --old

Wähle neues oder altes Binärpaketformat. Dies ist eine dpkg-deb(1) Option.

--nocheck

Lese oder prüfe nicht den Inhalt der Kontrolldatei beim Bauen eines Paketes. Dies ist eine dpkg-deb(1) Option.

--no-act | --dry-run | --simulate

Mache alles wie vorgesehen, aber schreibe keine Veränderungen. Dies wird benutzt, um zu sehen, was bei der angebenen Aktion passieren würde, ohne tatsächlich irgendetwas zu verändern.

Man versichere sich, dass man --no-act vor dem Aktionsparameter angibt, oder man könnte unerwünschte Ergebnisse erhalten (z.B. wird dpkg --purge foo --no-act zuerst das Paket foo vollständig entfernen und dann versuchen, das Paket --no-act vollständig zu entfernen, obwohl man möglicherweise erwartet, dass es tatsächlich gar nichts tut).

-R | --recursive

Rekursiv alle regulären Dateien behandeln, die auf .deb enden, und sich im angegebenen Verzeichnis und allen seinen Unterverzeichnissen befinden. Kann mit den Aktionen -i, -A, --install, --unpack und --avail benutzt werden.

-G

Installiere ein Paket nicht, wenn bereits eine neuere Version des Paketes installiert ist. Dies ist ein Alias für --refuse-downgrade.

--root=Verzeichnis | --admindir=Verzeichnis | --instdir=Verzeichnis

Ändere voreinstellte Verzeichnisse. admindir zeigt voreingestellt auf /var/lib/dpkg/ und enthält viele Dateien die Informationen geben über den Zustand installierter und nicht installierter Pakete usw. instdir zeigt voreingestellt auf / und verweist auf das Verzeichnis wohin Pakete installiert werden sollen. instdir ist auch das Verzeichnis, das an chroot(2) übergeben wird, bevor die Installationsskripte eines Pakets ausgeführt werden, das heißt dass die Skripte instdir als Wurzelverzeichnis sehen. root ändern ändert instdir in Verzeichnis und admindir in Verzeichnis/var/lib/dpkg/.

-O | --selected-only

Bearbeite nur die Pakete, die zur Installation selektiert sind. Das eigentliche Markieren wird mit dselect oder von dpkg getan, wenn es Pakete behandelt. Wenn zum Beispiel ein Paket entfernt wird, wird es als selektiert zur Deinstallation markiert.

-E | --skip-same-version

Installiere das Paket nicht, wenn dieselbe Version des Paketes bereits installiert ist.

--status-fd n

Schreibe Info über Paket Zustand auf Dateideskriptor n. Dies kann mehrfach angegeben werden. Zustandsupdates sind von der Form status: pkg: pkg qstate.

DATEIEN

/etc/dpkg/dpkg.cfg

Konfigurationsdatei mit voreingestellten Optionen.

Die anderen nachfolgend aufgelisteten Dateien sind in ihren voreingestellten Verzeichnissen, siehe Option --admindir um zu sehen, wie man die Orte dieser Dateien verändert.

/var/lib/dpkg/available

Liste verfügbarer Pakete.

/var/lib/dpkg/status

Zustände verfügbarer Pakete. Diese Datei enthält Informationen darüber ob ein Paket zum Entfernen markiert ist oder nicht, ob es installiert ist oder nicht, usw. Siehe Abschnitt INFORMATIONEN ÜBER PAKETE für mehr Informationen.

Die nachfolgenden Dateien sind Komponenten eines Binärpaketes. Siehe deb(5) für mehr Informationen über sie:

control

conffiles

preinst

postinst

prerm

postrm

UMGEBUNGSVARIABLEN

DPKG_NO_TSTP

Man setze dies, wenn man bevorzugt, dass dpkg eine neue Shell startet statt sich selbst zu suspendieren, während es ein Shell-Escape ausführt.

SHELL

Das Programm, das dpkg ausführt, wenn es eine neue Shell startet.

COLUMNS

Setzt die Anzahl Spalten, die dpkg verwenden soll, wenn es formatierten Text anzeigt. Zur Zeit nur von -l benutzt.

DPKG_OLD_CONFFILE

Wird von dpkg auf den Dateinamen der alten Konfigurationsdatei gesetzt, wenn man eine Shell startet, um eine geänderte Konfigurationsdatei zu untersuchen.

DPKG_NEW_CONFFILE

Wird von dpkg auf den Dateinamen der neuen Version einer Konfigurationsdatei gesetzt, wenn man eine Shell startet, um eine geänderte Konfigurationsdatei zu untersuchen.

BEISPIELE

Pakete auflisten, die mit dem Editor vi zusammenhängen:
dpkg -l ’*vi*’

Die Einträge zu zwei Paketen in /var/lib/dpkg/available sehen:
dpkg --print-avail elvis vim | less

Die Auflistung der Pakete selbst durchsuchen:
less /var/lib/dpkg/available

Ein installiertes Paket elvis entfernen:
dpkg -r elvis

Um ein Paket zu installieren, muss man es erst in einem Archiv oder auf einer CDROM finden. Die Datei available Datei zeigt, dass sich das Paket vim in der Sektion »editors« befindet:
cd /cdrom/hamm/hamm/binary/editors dpkg -i vim_4.5-3.deb

Eine lokale Kopie der Paket-Selektions-Zustände machen:
dpkg --get-selections >myselections

Man könnte diese Datei auf einen anderen Computer bringen und dort so installieren:
dpkg --set-selections <myselections

Man beachte, dass dies nicht wirklich etwas installiert oder entfernt, sondern nur die Selektionszustände der angeforderten Pakete setzt. Man braucht eine andere Anwendung, um die angeforderten Pakete tatsächlich herunterzuladen und zu installieren. Zum Beispiel dselect starten und "Installieren" wählen.

Für gewöhnlich wird man finden, dass dselect(8) eine bequemere Art bietet, die Paket-Selektionszustände zu verändern.

ZUSÄTZLICHE FUNKTIONALITÄT

Zusätzliche Funktionalität kann durch Installieren der folgenden Pakete gewonnen werden: apt, aptitude und debsums.

SIEHE AUCH

dselect(8), dpkg-deb(1), deb(5), deb-control(5) und dpkg-reconfigure(8)

FEHLER

--no-act gibt für gewöhnlich weniger Informationen als hilfreich wäre.

AUTOREN

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

Übersetzung dieser Manpage von Florian »eix« Rehnisch, 23. Sep. 2006.