Einführung in aptitude, apt-get, apt-cache und dpkg

Für erfahrene Debianbenutzer sicher kein Thema was brandneue Informationen verspricht, als Fußnote ist es mir dennoch wichtig. Mich hat es früher immer geärgert, dass man das scheinbar Selbstverständliche erst einmal mühsam im Internet nachforschen musste. Nun kann ich nicht versprechen, dass ich nicht an anderer Stelle in diesem Blog es genauso gemacht habe, aber zumindest bei meiner Anleitung zur Debian-Netzinstallation möchte ich eine "triviale" Sache nicht übergehen - das Paketmanagement.
Bekanntlich ist es die große Stärke von Linux, die gesamte Software aus einer Hand, sprich einem Repositorium, herunterladen und installieren zu können. Debian nennt das Werkzeug dazu "Advanced Packaging Tool" oder kurz APT. Für APT gibt es verschiedene Paketmanager, Frontends und Werkzeuge, die diese wiederkehrenden Prozesse vereinfachen sollen. Natürlich gibt es auch grafische wie Synaptic. Mein Favorit ist jedoch Aptitude. Aptitude kombiniert einige Merkmale von apt-get und apt-cache, was es, denke ich, einfacher macht sich die Befehle zu merken. Auf der anderen Seite gibt es einige Alleinstellungsmerkmale von apt-get und apt-cache. Um die Verwirrung komplett zu machen, existiert noch dpkg, welches zur eigentlichen Paketverwaltung auf dem lokalen System von den Frontends genutzt wird.

Paketquellen anpassen

Bevor man neue Software installieren möchte, muss man die Quellen in /etc/apt/sources.list an seine Anforderungen anpassen. Entscheidend dabei ist, für welches Debian man sich entschieden hat.

deb http://ftp.de.debian.org/debian stable main contrib non-free
deb-src http://ftp.de.debian.org/debian stable main
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://ftp.de.debian.org/debian unstable main

Die Quelle für Binärpakete wird mit deb eingeleitet. Danach folgt die URL des Spiegelservers. Schließlich definiert man mit stable, testing oder unstable, welchen Debianzweig man verwenden möchte. Als Alternative lassen sich auch die Codenamen
squeeze, wheezy und sid an dieser Stelle eintragen, die sich natürlich in der Zukunft ändern werden. Die Verwendung des Codenamens bedeutet nur, dass man dieser Version durch die verschiedenen Stadien des Veröffentlichungszyklus folgen möchte. Wheezy wandert z.B. jetzt von Testing in ein paar Monaten nach Stable und ist in ca. 2,5 Jahren dann nur noch Oldstable bis es ein weiteres Jahr später überhaupt keinen Support mehr geben wird.

Nach der Definition der Debianversion bestimmt man noch aus welchen der drei Repos man Pakete beziehen möchte. Das sind main, contrib und non-free. In main befindet sich ausschließlich freie Software nach den Debian Free Software Guidelines (DFSG). In contrib existiert ebenfalls nur freie Software, die aber zum Funktionieren noch eine unfreie Komponente benötigt, z.B. ist der Server von Cube 2:Sauerbraten frei, die Medieninhalte hingegen stehen teilweise unter unfreien Lizenzen. In non-free befinden sich konsequenterweise Daten und Software, die nicht mit den DFSG vereinbar sind.

Grundlagen

Paketcache updaten

aptitude update oder apt-get update

Pakete suchen

aptitude search Ausdruck oder apt-cache search Ausdruck

Paketinformationen anzeigen

aptitude show Paketname oder apt-cache show Paketname

Pakete installieren

aptitude install Paketname oder apt-get install Paketname

Pakete entfernen

aptitude remove Paketname oder apt-get remove Paketname

Pakete inkl. Konfigurationsdateien entfernen

aptitude purge Paketname oder apt-get purge Paketname

System auf den neusten Stand bringen

aptitude safe-upgrade oder apt-get upgrade

System auf eine andere Version upgraden (z.B. Squeeze->Wheezy)

aptitude full-upgrade oder apt-get dist-upgrade

Den Quellcode herunterladen

apt-get source mutt


Wenn man in der /etc/apt/sources.list mit der Zeile deb-src den Zugang zu den Quelldateien freigeschaltet hat, ist es möglich mit apt-get den Quellcode herunterzuladen. Das Alleinstellungsmerkmal, das apt-get bisher von aptitude unterscheidet.

dpkg

Dpkg wird nur bei der Installation oder Deinstallation lokaler Dateien direkt aufgerufen, wenn man also z.B. ein Paket selbst erstellt hat

dpkg -i Paketname
dpkg -P Paketname

Oft viel interessanter sind Optionen wie
// listet alle installierten Pakete auf
dpkg -l
// listet Paket mutt mit ein paar Informationen auf
dpkg -l mutt
// Gibt die Orte der Dateien aus, die sich im Paket mutt befinden
dpkg -L mutt
// Sucht nach dem Muster/Ausdruck mutt im gesamten Paketcache
dpkg -S mutt
Gerade auf älteren Rechner ist der direkte Aufruf von dpkg, um mehr Informationen über den Paketzustand herauszufinden, gefühlt schneller als mit aptitude.

Was ich 99% meiner Zeit mit aptitude mache

// Täglich
aptitude update
aptitude safe-upgrade
// Wenn ich Testing oder Unstable benutze, die Konsequenzen kenne und einen Konflikt auflösen möchte
aptitude update
aptitude full-upgrade
// Programme installieren, z.B. htop, ncdu und cmus
aptitude update
aptitude install htop ncdu cmus
// Die Programme htop, ncdu und cmus mit Konfigurationsdateien entfernen
aptitude purge htop ncdu cmus
// Alle Pakete der Sektion web und games auflisten
aptitude search '~sweb'
aptitude search '~sgames'

Das wars?

Jep. Nicht vergessen immer mal die TAB-Taste zu drücken ;), aber ansonsten ist es das. Solltet ihr keine Root-Rechte haben, könnt ihr auch mit der angehängten Option -s die einzelnen Optionen nur simulieren.
aptitude install htop -s
Ansonsten hilft ab und an ein
aptitude autoclean,
damit der Paketcache nicht zu viel Platz auf der Festplatte belegt. Diese Befehle sollten vollkommen ausreichend sein, um das eigene Linuxsystem erweitern und gestalten zu können. Alle weiteren Ideen mit Aptitude habe ich unter dem Stichwort Aptitude verschlagwortet. Für mehr Informationen zu den einzelnen Paketmanagern hilft wie immer man weiter.

One Reply to “Einführung in aptitude, apt-get, apt-cache und dpkg”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.