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.