AA_granitfelsen_sxc638118_Simon-Mueller.jpg

© Simon Müller, sxc.hu

Urgestein

Dpkg, Apt und Co.

30.11.2009
Schon 1993 schuf Debian mit Dpkg ein solide Basis zur einfachen Paketverwaltung. Deren flexible Methoden und Konzepte bewähren sich bis heute – auch im Debian-Ableger Ubuntu.

Debians Dpkg [1] ist neben dem Red Hat Package Manager RPM [2] die am weitesten verbreitetste Paketverwaltung unter den gängigen Linux-Distributionen. Die anfangs von Matt Welsh, Carl Streeter und Debian-Begründer Ian Murdock in Perl geschriebene Verwaltung bildet auch die Grundlage für Canonicals Ubuntu Linux. Selbst PDAs und Router, die unter Linux laufen, verwenden eine abgewandelte Version von Dpkg mit dem Namen Ipkg [3].

Debian-Pakete erkennen Sie an der Endung .deb einer Datei. Dabei handelt es sich eigentlich nur um ein mit ar gepacktes Archiv mit folgendem Aufbau:

  • debian-binary: Versionsinformationen für Dpkg, zum Beispiel der String 2.0.
  • md5sums: Prüfsummen für die vom Paket installierten Dateien
  • control.tar.gz: Archiv mit Steuerungsdateien, Abhängigkeitsinformationen und Pre-/Post-/De-Installationsskripten und anderem mehr
  • data.tar.gz: Archiv mit den eigentlichen Programmdateien.

Über die Option -i weisen Sie Dpkg an, ein Debian-Paket zu installieren (dpkg -i Paket.deb). Möchten Sie einen Blick auf den Inhalt werfen, führen Sie dpkg -c Paket.deb aus. Dpkg selbst löst keine Abhängigkeiten zwischen Paketen auf: Beim Versuch, ein Paket zu installieren, dessen Dependencies nicht erfüllt sind, quittiert Dpkg die Aktion mit einer entsprechenden Fehlermeldung.

In seltenen Fällen kommt es vor, dass Pakete nicht richtig installiert sind. Den Status eines einzelnen Pakets fragen Sie mittels dpkg -s Paket ab, wobei der Paketname dem Dateinamen ohne die Endung entspricht. Die bereits auf dem System installierten Pakete zeigt der Befehl dpkg -l: Die erste Spalte gibt den Status des Pakets mithilfe von zwei Buchstaben an – im weiteren Verlauf des Artikels erfahren Sie hierzu mehr. Die zweite Spalte führt den Namen an, danach folgen die Paketversion und die Paketbeschreibung (Abbildung 1).

Abbildung 1: Dpkg bietet die Möglichkeit, auf dem System installierte und teilweise installierte Pakete (falls beispielsweise die Konfiguration fehlschlug) übersichtlich anzuzeigen.

Falls es ein Paket auf dem System bereits gibt, aktualisiert Dpkg es ohne eine weitere Interaktion des Benutzers – die Angabe einer zusätzlichen Option ist nicht erforderlich. Wünschen Sie die Aktualisierung eines Paketes nicht, gibt es die Möglichkeit, es auf "hold" zu setzen, also quasi einzufrieren. Dazu dient die Anweisung

# echo Paket "hold" | dpkg --set-selections

Eine Liste aller Pakete, die auf "hold" gesetzt sind, erhalten Sie mittels des Befehls dpkg --get-selections | grep hold.

In seltenen Fällen kommen Sie nicht umhin, ein Paket zu installieren, obwohl einige Abhängigkeiten nicht einzuhalten sind. Beispielsweise kann es vorkommen, dass für eine 64-Bit-Installation keine entsprechende Paketversion vorliegt. Nach Angabe der Option --force warnt dpkg nur noch, falls eine Bedingung nicht eingehalten wird. dpkg --force-all ignoriert sämtliche Bedingungen, wie Architektur, eingefrorene Pakete oder nicht erfüllte Paketabhängigkeiten. Mehr Informationen liefert dpkg --force-help.

Möchten Sie herausfinden, aus welchem Paket eine bestimmte Datei stammt, führt der Befehl dpkg -S /Pfad/zur/Datei zum Ziel. Sollte die angegebene Datei zu keinem Paket gehören, hat das System sie während der Konfiguration oder im Alltagsbetrieb erstellt, oder es handelt sich um eine vom Benutzer angelegte Datei.

Möchten Sie ein Paket wieder aus dem System entfernen, so übergeben Sie Dpkg dessen Namen zusammen mit der Option -r. Etwaige Konfigurationsdateien im Verzeichnis /etc bleiben dabei jedoch erhalten, erst mit dem Parameter -P löscht die Paketverwaltung auch diese Dateien restlos von der Platte. Solange andere Pakete vom zu Deinstallierenden abhängen, entfernt Dpkg dieses nicht wirklich, sondern markiert es lediglich als gelöscht. In der Statusübersicht erkennen Sie das in der ersten Spalte: Dort erscheint vor dem Paketnamen nicht mehr ii, sondern ri (removed/installed, "entfernt") oder pi (purged/installed, "bereinigt").

Einige Anwendungen, darunter beispielsweise Apache, benötigen eine Ausgangskonfiguration. Bei der Installation eines Paketes fordert Dpkg Sie deshalb auf, die entsprechende Konfigurationseinstellungen anzugeben. Für eine Neukonfiguration bewegen Sie Dpkg über den Schalter --configure zur erneuten Abfrage der Konfigurationsdaten.

Komfort-Tool Apt

Dpkg kann lediglich lokal vorliegenden Pakete installieren, nicht aber solche aus dem Netz. Um diesen Umstand abzuhelfen, schufen die Debian-Entwickler am 31. März 1998 das Programm Apt ("A Package Tool"). Es holt Dateien von FTP- oder HTTP-Servern, löst selbstständig Abhängigkeiten auf und installiert das Paket im Anschluss.

Im Verzeichnis /etc/apt lagert die Datei sources.list, welche die Paketquellen für Apt enthält. Den Aufbau der Datei haben die Entwickler sehr einfach gehalten. Das Schlüsselwort deb für eine Quelle mit Binärprogrammen oder deb-src für Quelldateien leitet den Pfad für ein Paket-Repository ein. Als nächstes folgt der URI zum Top-Level-Pfad des Servers. Den dritten Teil bildet die Distributionsversion, zum Beispiel karmic für Ubuntus jüngstes Kind. Zum Schluss folgen die sogenannten Komponenten – in der Regel main, contrib oder non-free. Ein Beispiel einer Zeile aus Ubuntu 9.10 sieht folgendermaßen aus:

http://de.archive.ubuntu.com/ubuntu/ karmic main

Vor Beginn jeder Installation sollten Sie als erstes den Paket-Cache aktualisieren. Das erledigt der Befehl apt-get update (Abbildung 2). Anschließend spielen Sie die gewünschte Software mit apt-get install Paket ein. Nicht immer ist jedoch der Paketname bekannt. In diesem Fall suchen Sie mittels apt-cache search Begriff in der Paketdatenbank. Der Befehl gibt eine Liste aller Pakete aus, in deren Namen oder Beschreibung sich der gesuchte Begriff findet.

Abbildung 2: Vor der Aktualisierung des Systems oder Installation neuer Pakete ist es empfehlenswert, den Paketcache zu aktualisieren.

Um das System auf den neuesten Stand zu bringen, führen Sie apt-get upgrade oder apt-get dist-upgrade aus. Ein dist-upgrade installiert im Gegensatz zu upgrade auch neue Abhängigkeiten, sofern ein aktualisierbares Paket danach verlangt.

Mit der Zeit sammeln sich viele alte Pakete installierter Programme unter /var/cache/apt/archives an. Alle alten Paketversionen entsorgen Sie mit dem Befehl apt-get autoclean. Möchten Sie das Archiv-Verzeichnis gleich komplett leeren, rufen Sie stattdessen apt-get clean auf.

Genauso einfach wie das Installieren von Paketen funktioniert auch das Löschen. Ähnlich wie bei Dpkg können Sie dabei die Konfigurationsdateien wahlweise behalten oder mitsamt der Programmdateien aus dem System entfernen. Ein schlichtes apt-get remove Paket löscht die nur Programmdateien. Die zusätzliche Option --purge entfernt auch die Konfigurationsdateien. Nicht mehr auf dem System benötigte Pakete – also solche, die als Abhängigkeit anderer Pakete ins System kamen – entfernen Sie mittels apt-get autoremove.

Ausführlichere Informationen zu einem Paket fördert der Aufruf apt-cache show Paket zutage – Abbildung 3 zeigt einen Ausschnitt der Informationen zu Firefox. Neben der bloßen Beschreibung gibt Apt-cache unter anderem auch die Abhängigkeiten des Pakets an.

Abbildung 3: Apt-cache zeigt detaillierte Informationen zu bereits installierten oder im Paket-Repository befindlichen Paketen an.

Komfortabler Arbeiten mit Aptitude

Erscheint Ihnen das Gespann Apt-get/Apt-cache als zu umständlich zu bedienen, dann greifen Sie auf Aptitude zurück. Dabei handelt es sich wie bei Apt selbst um ein Tool, das Abhängigkeiten auflöst, den Paketcache aktualisiert, Pakete herunterlädt und auf dem System installiert. Es besitzt aber auch ein Konsolenfrontend (Abbildung 4), mit dem Sie unter anderem komfortabel die verfügbaren Pakete durchforsten. Dazu ist nichts weiteres notwendig, als Aptitude ohne zusätzliche Optionen aufzurufen. Die Bedienung des Frontends erfolgt weitgehend intuitiv, im Zweifelsfall konsultieren Sie die Man- beziehungsweise Info-Page des Programms (man aptitude oder info aptitude).

Abbildung 4: Mit Aptitude stöbern sie bequem im Paket-Repository, (de-)installieren Pakete oder aktualisieren das Systems.

Aptitude kombiniert alle Funktionen von Apt-get und Apt-cache in einer Anwendung: Wie gewohnt aktualisieren Sie den Paketcache mit aptitude update oder installieren Pakete mit der Anweisung aptitude install Paket. Programmdateien samt Konfigurationsdaten entfernt aptitude purge Paket aus dem System. Der Befehl aptitude remove Paket dagegen belässt die Konfigurationsdateien am ursprünglichen Ort. Ebenfalls mit an Bord sind die Optionen clean und autoclean zum (teilweise) Löschen des Paketeverzeichnisses sowie show zum Anzeigen der Paketinformationen.

Wie bereits erwähnt, lassen sich möglich Pakete vor einer Aktualisierung "einfrieren", sodass der Paketmanager sie bei bei einer Aktualisierung nicht überschreibt. Mit Dpkg lässt sich das nur relativ umständlich bewerkstelligen, Aptitude hingegen hat die Optionen hold und unhold bereits fest an Bord. Um ein bereits installiertes Paket nochmals einzurichten, führen Sie aptitude reinstall Paket aus (siehe Abbildung 5).

Abbildung 5: Aptitude bietet die Option reinstall an, mit der Sie ein Paket in der gleichen Version noch einmal installieren.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Apt-get und Aptitude (Teil 1)
    Die Paketmanager Apt-get und Aptitude gehören zum Standardrepertoire von Debian und dessen Derivaten. Welcher davon eignet sich wofür am besten?
  • Apt-Get und Aptitude im Einsatz
    Das Installieren und Entfernen von Software gehört für jeden Paketmanager zur Pflichtübung. Wer sein Debian-System aber richtig warten will, braucht Profi-Tools wie Apt-get und Aptitude.
  • Aptitude: Software-Installation unter Debian
    Debian besteht in der aktuellen Version aus rund 9000 Paketen, in der nächsten werden es schon über 14000 sein. Aptitude verschafft Übersicht und hilft bei der Suche nach bestimmter Software.
  • Hilfe zur Selbsthilfe: Paketverwaltung
    Moderne Distributionen bieten zusätzlich in der Regel einen komfortablen Paketmanager, um Programme zu verwalten. Mit dem richtigen Know-how kitzeln Sie zusätzlich viele Information aus diesen heraus.
  • Komfortabel Pakete managen mit der Apt-Shell
    Die Apt-Shell bietet eine Bedienoberfläche für viele Tools rund um das ausgefeilte Debian-Paketmanagement. Mit ihr nutzen Sie die vielfältigen Funktionen über ein zentrales Interface.
Kommentare
Ironie? wohl leider nicht.
Ferdinand Thommes, Montag, 30. November 2009 15:40:55
Ein/Ausklappen

Zitat: Das Duo lässt sich einfach bedienen und sorgt insbesondere für eine kinderleichte System- oder Distributionsaktualisierung – wie insbesondere Ubuntu zweimal jährlich
da fehlen doch im letzten Satzteil " – wie insbesondere Ubuntu zweimal jährlich " die Ironie Tags? :)
Denn sollte das ernst gemeint sein so möchte ich doch mal darauf hinweisen dass die Failures beim Upgeade aud eine neue Ubuntu Version rein gar nichts mit apt/dpkg zu tun haben.

greetz
ferdi


Bewertung: 123 Punkte bei 10 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Ironie? wohl leider nicht.
Gottfried Kramer (unangemeldet), Freitag, 18. Dezember 2009 16:02:08
Ein/Ausklappen

Ohne jede Ironie:

Das mußte ja aus der sidux-Ecke kommen.


Bewertung: 77 Punkte bei 9 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.