Einführung
dpkg
in Linux ist der primäre Paketmanager für Debian und Debian-basierte Systeme wie Ubuntu. Das Tool installiert, erstellt, entfernt, konfiguriert und ruft Informationen für Debian-Pakete ab. Der Befehl funktioniert mit Paketen in .deb formatieren.
Diese Anleitung untersucht das dpkg
Befehlssyntax und Optionen durch verschiedene Beispiele.
Voraussetzungen
- Ein System mit einem Debian- oder einem Debian-basierten Betriebssystem.
- Zugriff auf die Befehlszeile/das Terminal als sudo.
- Eine .deb Datei, um mit den Beispielen zu arbeiten.
dpkg-Befehlssyntax
Die grundlegende Syntax für dpkg
Befehl ist:
dpkg [options] action
Der Befehl akzeptiert eine Aktion und null oder mehr Optionen.
Das dpkg
command fungiert als Frontend für die folgenden zwei Tools:
1. Das dpkg-deb
Befehl, der Informationen über .deb anzeigt Pakete.
2. Die dpkg-query
Befehl, der die Informationen aus der dpkg-Datenbank anzeigt.
Das dpkg
Befehl führt Aktionen von dpkg-query
aus und dpkg-deb
. Daher zeigen die folgenden beiden Befehle dasselbe Ergebnis:
dpkg -l
dpkg-query -l
Die Aktion -l
ist eine dpkg-query
Aktion, die alle Pakete aus der dpkg-Datenbank auflistet. Das dpkg
Der Befehl erkennt die fremden Optionen und führt dpkg-query
aus automatisch.
dpkg-Befehlsoptionen
Die folgende Tabelle enthält kurze Beschreibungen häufig verwendeter Optionen und Aktionen für das dpkg
Befehl.
Syntax | Typ | Beschreibung |
---|---|---|
-i <package.deb> --install <package.deb> | Aktion | Installiert das Paket. |
--unpack <package.deb> | Aktion | Entpackt das Paket ohne Konfiguration. |
--configure <package> | Aktion | Konfiguriert ein entpacktes Paket. |
-r <package> --remove <package> | Aktion | Entfernt ein installiertes Paket. Entfernt keine Konfigurationsdateien und andere Daten. |
-P <package> --purge <package> | Aktion | Löscht ein installiertes oder entferntes Paket. Löscht Konfigurationsdateien und andere Daten. |
--get-selections | Aktion | Ruft Pakete mit aktueller Auswahl ab. |
--set-selections | Aktion | Setzt Dateiauswahlstatus aus einer Datei, die von der Standardeingabe gelesen wird. |
-b <directory> --build <directory> | Aktion (von dpkg-deb) | Erzeugt eine .deb Paket. |
-c <package.deb> --contents <package.deb> | Aktion (von dpkg-deb) | Listen Paketinhalt. |
-I <package.deb> --info <package.deb> | Aktion (von dpkg-deb) | Zeigt Informationen zu einem Paket an. |
-l <pattern> --list <pattern> | Aktion (von dpkg-query) | Listet Pakete nach Übereinstimmung mit dem Muster auf. |
-L <package> --listfiles <package> | Aktion (von dpkg-query) | Dateispeicherorte des installierten Pakets auflisten. |
-s <package> --status <package> | Aktion (von dpkg-query) | Zeigt den Status eines installierten Pakets an. |
-S <pattern> --search <pattern> | Aktion (von dpkg-query) | In installierten Paketen nach einem Muster suchen. |
-R --recursive | Option | Handhabt Aktion rekursiv im Zielverzeichnis und Unterverzeichnissen. |
--log=<file> | Option | Protokolliert Aktualisierungen von Statusänderungen in einer Datei. |
--no-act --dry-run --simulate | Option | Zeigt die Ausgabe, ohne Änderungen zu übernehmen. Vor der Aktion verwenden. |
Aktionen, die das System ändern, wie das Installieren oder Entfernen von Paketen, erfordern sudo-Berechtigungen. Informationsbasierte Optionen erfordern keine besonderen Benutzerrechte.
Die privilegierte Zugriffsverwaltung trägt zur Sicherheit des Systems bei, indem reguläre Benutzer daran gehindert werden, systemweite Änderungen vorzunehmen.
dpkg-Befehlsbeispiele
Wenn Sie eine .deb Paket, fahren Sie mit den Beispielen unten fort. Wenn nicht, laden Sie eine einfache .deb herunter Paket zum Testen, wie zum Beispiel cowsay Kommandozeilen-Gimmick.
Führen Sie Folgendes aus, um die Datei abzurufen:
wget http://archive.ubuntu.com/ubuntu/pool/universe/c/cowsay/cowsay_3.03+dfsg2-4_all.deb
Bestätigen Sie die .deb Datei, die durch Auflisten des Verzeichnisinhalts mit dem Befehl ls heruntergeladen wurde:
ls -l *.deb
Die Ausgabe zeigt die .deb Paket.
Paket installieren
Installieren Sie ein Debian-Paket mit dem dpkg
Befehl und das -i
oder --install
Stichwort:
sudo dpkg -i <package.deb>
Zum Beispiel:
sudo dpkg -i cowsay_3.03+dfsg2-4_all.deb
Der Befehl erfordert sudo, um eine .deb zu installieren Paket.
Bekannte Pakete auflisten
Um alle bekannten Pakete aufzulisten, verwenden Sie -l
Stichwort:
dpkg -l
Der Befehl druckt die Pakete im Pager-Modus. Navigieren Sie mit den Pfeiltasten oder verwenden Sie die Leertaste seitenweise auflisten. Drücken Sie q um die Liste zu verlassen. Die Spalten listen den Namen, die Version, die Architektur und die Beschreibung jedes Pakets auf.
Die ersten drei Spalten geben einen vollständigen Überblick über den Paketstatus:
1. Aktionsauswahl:
u
- Unbekannti
- Installierenh
- Haltenr
- Entfernenp
- Löschen
2. Paketstatus:
n
- Nicht installiertc
- KonfigurationsdateienH
- Halb installiertU
- AusgepacktF
- Halb konfiguriertW
- Warten auf Auslösert
- Ausstehende Auslöseri
- Installiert
3. Fehler-Flags:
R
- Neuinstallation erforderlich<empty>
- Keine Fehler
Daher wird ein Paketstatus „ii
" bedeutet dpkg
Das zur Installation ausgewählte Paket wurde ohne Fehler erfolgreich installiert.
Um eine bestimmte Instanz aus der Liste abzurufen, verwenden Sie:
dpkg -l <package>
Zum Beispiel:
dpkg -l cowsay
Um mehrere Pakete aufzulisten, trennen Sie jeden Paketnamen durch ein Leerzeichen.
Paket entfernen
Um ein Debian-Paket zu entfernen, verwenden Sie den folgenden Befehl:
dpkg -r <package>
Um beispielsweise das Cowsay-Paket zu entfernen, verwenden Sie:
sudo dpkg -r cowsay
Das -r
Option entfernt die Konfigurationsdateien nicht. Verwenden Sie diese Option, wenn Sie Software zur Neuinstallation entfernen.
Paket löschen
Um ein Paket zu löschen, verwenden Sie -P
Möglichkeit:
sudo dpkg -P <package>
Zum Beispiel:
sudo dpkg -P cowsay
Der Befehl entfernt ein Paket zusammen mit allen Konfigurationsdateien. Verwenden Sie purge, um ein Programm vollständig aus dem System zu entfernen.
Paketinhalt anzeigen
Eine .deb Paket enthält mehrere Dateien und Verzeichnisse, die angeben, wo sich das Paket nach der Installation oder dem Entpacken befindet.
Um den Paketinhalt anzuzeigen, führen Sie Folgendes aus:
dpkg -c <package.deb>
Zum Beispiel:
dpkg -c cowsay*
Die Ausgabe zeigt alle Dateien und Verzeichnisse in der .deb Paketdatei. Das Beispielpaket befindet sich in /usr/games/ und /usr/share/ nach der Installation oder dem Auspacken.
Paket entpacken
Um das Paket ohne Konfiguration zu entpacken, verwenden Sie:
sudo dpkg --unpack <package.deb>
Zum Beispiel:
sudo dpkg --unpack cowsay*
Der Befehl entpackt alle Dateien aus dem Paket.
Paket konfigurieren
Zum Konfigurieren einer entpackten .deb Paket zu installieren oder ein installiertes Paket neu zu konfigurieren, verwenden Sie:
dpkg --configure <package>
Zum Beispiel:
sudo dpkg --configure cowsay
Das Entpacken und Konfigurieren eines Debian-Pakets unterteilt den Installationsprozess in zwei Schritte.
Überprüfen Sie, ob das Paket installiert ist
Um zu prüfen, ob ein Paket installiert ist, verwenden Sie das -s
Stichwort:
dpkg -s <package>
Zum Beispiel:
dpkg -s cowsay
Der Status Zeile zeigt an, ob ein Paket installiert ist.
Paketinformationen anzeigen
Um Paketinformationen direkt aus der .deb anzuzeigen verwenden Sie den folgenden Befehl:
dpkg -I <package.deb>
Zum Beispiel:
dpkg -I cowsay*
Der Befehl zeigt Paketinformationen wie Größe, Abhängigkeiten und Dokumentationsverweise an. Verwenden Sie diese Methode, um Paketinformationen zu überprüfen, bevor Sie ein Paket installieren.
Alle Pakete aus einem Verzeichnis installieren
Verwenden Sie das -R
Option vor -i
um Pakete rekursiv zu installieren:
dpkg -R -i <directory>
Der Befehl installiert alle Pakete, die sich im Verzeichnis und allen Unterverzeichnissen befinden. Wenn mehrere Instanzen desselben Pakets entpackt werden, tritt nur eine Konfiguration auf.
Speicherorte der installierten Paketdateien auflisten
Um die Paketdateien und ihren Speicherort aufzulisten, verwenden Sie -L
Stichwort:
dpkg -L <package>
Zum Beispiel:
dpkg -L cowsay
Die Ausgabe listet alle Dateiverzeichnisse und Dateispeicherorte auf.
Paketauswahl erhalten
Um die Paketnamen durch Auswahl abzurufen, verwenden Sie:
dpkg --get-selections
Die Liste zeigt Paketnamen und die Auswahlmarkierung.
Installierte Pakete auflisten
Verwenden Sie den folgenden Befehl, um eine Liste der installierten Pakete abzurufen:
dpkg --get-selections | grep -v "deinstall" | awk '{ print $1 }'
Der Befehl macht Folgendes:
grep
filtert Pakete heraus, die mit"deinstall"
gekennzeichnet sind .awk
gibt nur die erste Spalte mit den Paketnamen aus.
Verwenden Sie diese Methode, wenn Sie eine Liste der installierten Programme benötigen.
Paketauswahl festlegen
Legen Sie die Paketauswahl für ein Paket im folgenden Format fest:
echo <package> <state> | dpkg --set-selections
Der Befehl erwartet den Paketstatus als Standardeingabe. Die möglichen Bedingungen sind:
install
hold
deinstall
purge
unknown
Um beispielsweise die Aktualisierung eines Pakets zu stoppen, verwenden Sie:
echo cowsay hold | sudo dpkg --set-selections
Das Paket befindet sich im Hold-Zustand, was bedeutet, dass das Programm keine automatischen Updates erhält.
Paket mit Dateien suchen
Um ein Paket zu finden, das eine Datei enthält, verwenden Sie -S
Möglichkeit:
dpkg -S <pattern>
Suchen Sie beispielsweise nach apt-get:
dpkg -S apt-get
Die Ausgabe zeigt apt-get gehört zu apt Paket.
Suchen Sie alternativ nach einer bestimmten Datei. Zum Beispiel:
dpgk -S gnu.cow
Die Ausgabe zeigt, dass die Datei zum Cowsay-Paket gehört.
Versionen vergleichen
Das dpkg
command bietet ein Tool zum Vergleichen von Programmversionsnummern. Die Syntax lautet:
dpkg --compare-versions <version number> <comparison operator> <version number>
Die möglichen Vergleichsoperatoren sind:
lt
- Streng kleiner alsle
- Kleiner als oder gleicheq
- Gleichne
- Ungleichge
- Größer als oder gleichgt
- Streng größer als
dpkg
gibt 0 (Erfolg) für einen korrekten Vergleich und einen Wert ungleich Null für einen Fehler zurück.
Vergleichen Sie beispielsweise die folgenden Versionsnummern:
dpkg --compare-versions 1.2-3 gt 1.1-4
echo $?
Der Befehl gibt 0
zurück , was anzeigt, dass die erste Versionsnummer größer als die zweite ist.
Unterstützung mehrerer Architekturen
Alle Debian-Pakete enthalten Informationen zur unterstützten Architektur. Die Einschränkung stellt sicher, dass das System nicht mit Binärdateien für eine falsche Architektur endet.
Einige Architekturen unterstützen nativ verschiedene Architekturen. Beispielsweise unterstützt ein amd64 (ein 64-Bit-System) i386-Installationen (ein 32-Bit-System).
Das dpkg
Befehl der Architektur des Hosts entspricht. Holen Sie sich die Informationen mit:
dpkg --print-architecture
Um die Unterstützung für fremde Architekturen anzuzeigen, verwenden Sie:
dpkg --print-foreign-architectures
Verwenden Sie zum Hinzufügen oder Entfernen von Architekturunterstützung:
sudo dpkg --add-architecture <architecture name>
sudo dpkg --remove-architecture <architecture name>
In beiden Fällen listen die Fremdarchitekturen Updates mit den Änderungen sofort auf.
Überprüfen Sie die dpkg-Befehlsversion
Um zu überprüfen, welche dpkg-Version auf dem System läuft, verwenden Sie:
dpkg --version
Die Ausgabe zeigt die dpkg-Version zusammen mit der Architektur.
Hilfe drucken
Verwenden Sie den folgenden Befehl, um ein einfaches Hilfemenü anzuzeigen:
dpkg --help
Verwenden Sie den man-Befehl, um die vollständige Dokumentation zu finden.