Debian: Paketmanager Dpkg und APT erklärt
In den meisten Linux Distributionen, genau so auch bei Debian, kommen Paketmanager (auch Software-Paketverwaltung genannt) zur Verwaltung der installierten Software zum Einsatz. In diesem Artikel werde ich mich damit beschäftigten, was der Paketmanager Dpkg (in Debian verwendet) ist, wie man ihn verwendet und welche Rolle APT für den Benutzer spielt.
Zunächst stellt sich die Frage, was eine Software-Paketverwaltung überhaupt ist. Typischerweise gibt es für Linux Betriebssysteme Repositories (Quellen), in denen Programme als Pakete abgelegt sind. In diesem liegen die Dateien der zu installierenden Software und es ist beschrieben, was während der Installation wie gemacht werden soll. Dabei sind auch sogenannte Abhängigkeiten beschrieben. Als solche werden Programme beschrieben, die benötigt werden, damit das Programm, welches man eigentlich installieren möchte, auch ordentlich funktioniert, da dieses auf ein Drittes Programm zugreift. Der Paketmanager sucht automatisch, woher er diese Abhängigkeit (Programm) beziehen kann und bietet an, diese automatisch mit zu installieren. Des Weiteren, wie der Name Paketverwaltung bereits sagt, verwalten Paketmanager die Softwarepakete, was bedeutet, dass diese Software installieren, deinstallieren, aktualisieren usw. können.
Unter Debian kommt der Paketmanager Dpkg (voller Name Debian Package Manager) zum Einsatz. Dieser arbeitet zur Verwaltung von Software mit Debian-Binärpaketen (Dateiendung .deb; Debian-Software-Paket-Format). Dabei hat der Paketmanager selbst nicht die Möglichkeit, nach Paketen zu suchen, sondern kann nur solche installieren, die ihm als .deb-Datei geben wurden. Folglich ist mit diesem Werkzeug alleine auch kein halbautomatisches Aktualisieren der Software möglich. Zum Suchen und Aktualisieren hat sich unter Debian APT als Mittel der Wahl herausgebildet, worauf ich im Verlauf des Artikels noch eingehen werde. Im Folgenden erst einmal die wichtigsten Befehle von Dpkg. In eckigen Klammern Stehendes ist einschließlich der Klammern zu ersetzen.
dpkg -i '[dateiname.deb]'
dpkg -r '[paketname]'
dpkg -P '[paketname]'
dpkg -l
Da sich die zu installierenden Pakete meist in Repositories befinden, und man sie daher nur selten manuell als .deb Datei herunterlädt und händisch mittels dpkg -i
installiert, verwendet man anstatt Dpkg im Normalfall eher das oben angesprochene APT (voller Name Advanced Packaging Tool), welches eine Art Oberfläche für Dpkg darstellt. Dieses Tool besteht aus mehreren Programmen. Am häufigsten begegnet man apt-get, welches für die Paket- und Quellenverwaltung zuständig ist. Das Tool apt-cache ist für die Anzeige von Informationen zu Paketen und Quellen zuständig. Mittels apt-key kann man Schlüssel für Repositories verwalten. Des Weiteren gibt es als weitere Bestandteile noch apt-pinning und apt-file, welche nur selten benötigt werden, weshalb ich im Folgenden auch nicht weiter darauf eingehen werde.
Beginnen wir einmal mit apt-get. Mit diesem Befehl, und entsprechenden Parametern, kann man Softwarepakete installieren, aktualisieren und deinstallieren. Des Weiteren kann man darüber die Listen der verfügbaren Softwarepakete aus den Repositories aktualisieren. Weitere Funktionen bietet apt-get auch noch, wobei die gerade Benannten, die meist verwendeten sein sollten. Wie dies praktisch funktioniert im Folgenden. Wie oben sind auch hier die in eckigen Klammern stehenden Worte einschließlich der Klammern zu ersetzen.
apt-get update
apt-get install [paketname]
apt-get remove [paketname]
apt-get purge [paketname]
apt-get upgrade
Der oben angesprochene Befehl apt-cache dient der Informationsbeschaffung über Pakete und Quellen (Repositories). Des Weiteren können dem Paketindex über dieses Tool auch einzelne Pakete hinzugefügt werden. Die wichtigsten Befehle wieder im Folgenden.
apt-cache add [dateiname.deb]
apt-cache show [paketname]
apt-cache showpkg [paketname]
apt-cache depends [paketname]
Wenn man einen konkreten Paketnamen nicht weiß, kann man über diesen Befehl den Paketindex durchsuchen. Bspw. könnte man nach php suchen und erhält alle Paketnamen, die irgendwie den String php enthalten.
apt-cache search [suchbegriff]
Zuletzt sollte die Funktion von dem Befehl apt-key noch erläutert werden. In den vorherigen Punkten wurde immer wieder von Quellen, Repositories oder auch dem darauf folgenden Paketindex gesprochen. Diese sind in der Datei /etc/apt/sources.list definiert. Die in diesen Quellen enthaltenen Paketlisten und Pakete sind signiert. Zur Authentifizierung der Pakete auf Gültigkeit werden GPG Schlüssel verwendet. Fügt man also eine neue Quelle hinzu, so kann es sein, dass man auch einen neuen Schlüssel hinzufügen muss. Wenn dem so ist, merkt man es echt schnell, da man beim Ausführen von apt-get update auf einen Fehler ähnlich dem Folgenden stoßen wird.
W: GPG error: [...] Release: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY [...]
Im Folgenden nun die drei Befehle von apt-key, die man meines Erachtens nach ab und zu braucht.
apt-key add [schlüsseldatei]
apt-key del [schlüssel id]
apt-key list ID
Nach diesem Artikel hoffe ich, dass ihr nun wisst, was es mit dem Paketmanager Dpkg und der Oberfläche APT auf sich hat. Dazu solltet ihr fit sein, was die Standard Anwendungsfälle des Paketmanagers unter Debian angeht.
5 Kommentare. Hinterlasse eine Antwort
Danke, schon lange nach so etwas gesucht! Gerade deine Homepage in die Favoriten gesetzt 😀
Na dann hat sich das Schreiben des Artikels doch schon gelohnt 😉
[…] Befehle des Paketmanagers APT findet ihr in dem entsprechenden Beitrag in meinem […]
gibt es ähnlich dem Pi-Store eine liste der inhaltlichen Beschreibung von Software für den Pi 2 und/oder o.t. für linux mint?
Denn wie kann ich namentlich suchen, was ich nicht weiß ?
VG, Rainer
Zumindest nicht in einer aufbereiteten Form, die du wahrscheinlich im Sinne hast. Jedoch, wenn man nach einer Lösung für ein Problem sucht stößt man in der Regel auf den Namen der Software, die mal ausprobieren möchte.