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.
Bei jeder Installation eines Debian-Grundsystems gelangt automatisch das Paket apt mit auf den Rechner (siehe Kasten “Der lange Weg zu Apt”). Dieses enthält die Tools Apt-cdrom, Apt-get und Apt-cache sowie die entsprechenden Konfigurationsdateien. Weitere Apt-Pakete installieren Sie bei Bedarf mittels Apt-get nach.
Die Konfigurationsdateien von Apt finden Sie unter /etc/apt. In der Datei /etc/apt/sources.list stehen die Bezugsquellen für die Pakete beziehungsweise die Paketdatenbanken. Jede Zeile der Datei enthält dabei eine Bezugsquelle, mit den vier Felder Paketart, Bezugsquelle, Distribution und Komponenten. So beschreibt etwa der Eintrag:
deb http://ftp.de.debian.org/debian/ squeeze main
eine Quelle für Debian-Binärpakete (deb), die Sie vom deutschen FTP-Server des Debian-Projekts beziehen, daraus die Distribution squeeze und davon wiederum nur die freien Komponenten aus dem Bereich main.
Die Datei /etc/apt/sources.lst entsteht während der Installation des Systems automatisch. Für den Alltagseinsatz können Sie auf Änderungen an dieser Konfiguration verzichten. Für weitere Pakete und Paketquellen bedarf die Datei hingegen einer näheren Inspektion. Je nachdem, welche Variante Sie zum Installieren des Grundsystems gewählt haben, stehen in der Datei nur die bislang verwendeten Paketquellen – also CD-ROMs oder Paket-Mirrors.
Der lange Weg zu Apt
In der ersten Hälfte der 1990er Jahre existierten noch recht wenige Distributionen. Zu den Pionieren zählen Yggdrasil, SLS, Slackware, Suse, Red Hat und Debian. Bis dahin gab es kaum distribustionsspezifische Pakete – der Anwender passte die Software nach den eigenen Bedürfnissen an und pflegte diese Version dann kontinuierlich weiter.
Ein einfaches Verwalten der Software war zu diesem Zeitpunkt noch nicht möglich, weil die Strukturen nicht erdacht und umgesetzt waren. Abhängigkeiten der Software ließen sich nicht automatisch auflösen. Der Benutzer musste einerseits wissen, welche Software einander bedingte, und andererseits, welche Versionen und Varianten sich miteinander vertrugen. Namensgleiche Dateien und Verzeichnisse waren problematisch. Die große Kunst bestand im Wissen, in welcher Reihenfolge es die Software zu installieren galt.
Aus diesem Wissen heraus startete 1993 das Debian-Projekt unter Ian Murdock mit einer revolutionären Idee: Dem Bereitstellen von kompilierten, sauber aufeinander abgestimmten Software-Paketen. Es folgte die Entwicklung von Dpkg, dem Debian-Paketsystem (“Debian Package”), das bis heute ein robuster Baustein der Systems geblieben ist. Das Paketformat kommt unter anderem bei Derivaten wie Ubuntu und Skolelinux sowie den beiden Live-Systemen Knoppix und Grml zum Einsatz.
Beim Einsatz von Dpkg besteht das Problem, dass die Abhängigkeiten zwischen den Paketen nicht automatisch aufgelöst werden. Dem Unix-Prinzip “ein Werkzeug für eine Aufgabe” folgend entstand Apt (Advanced Packaging Tool) als Oberfläche für Dpkg.
Apt steuert Dpkg an und löst die Abhängigkeiten der Pakete automatisch auf. Durch diesen Komfort erlangte das Tool sehr schnell große Popularität. Nach kurzer Zeit standen weitere Oberflächen für Apt bereit, so zum Beispiel Aptitude, das eine Kommandozeilenschnittstelle und eine Ncurses-Oberfläche bereitstellt, sowie Synaptic für das X-Window-System.
Paketquellen hinzufügen
Bereits während Installation und auch nachträglich können Sie weitere Paketquellen hinzufügen. Für CDs und DVDs nutzen Sie das Programm Apt-cdrom. Liegt bereits ein Datenträger im Laufwerk, setzen Sie als root folgendes Kommando zum Einbinden ab:
# apt-cdrom add
Das System liest den Datenträger und überprüft, ob es sich dabei um ein Installationsmedium für Debian handelt. Verläuft der Test erfolgreich, legt Apt-cdrom einen neuen Eintrag für den Datenträger in der Datei /etc/apt/sources.lst an.
Bei der Auswahl eines geeigneten Mirrors hilft das Programm Netselect-apt [1] aus dem gleichnamigen Paket weiter. Damit laden Sie die Liste aktueller Debian-Paketmirrors herunter. Nachdem Sie aus dieser Liste einen geeigneten Server ausgewählt haben, erstellt Netselect-apt dazu einen passenden Eintrag in der Datei /etc/apt/sources.list.
Mit dem Programm Netselect [2] prüfen Sie die Erreichbarkeit eines Paket-Mirrors. Netselect erwartet als Parameter eine Liste von URLs verschiedener Paket-Mirrors. Es vergleicht diese untereinander bezüglich der Erreichbarkeit und gibt eine Empfehlung in Form einer Punktzahl zurück, welcher Mirror als der geeignetste erscheint.
Je nach Netztopologie, Standort und Anbindung fällt das Ergebnis unterschiedlich aus. Im Beispiel aus Listing 1 macht ftp.debian.org mit 1654 Punkten das Rennen. Erfahrenere Benutzer öffnen die Konfigurationsdatei einfach in ihrem Lieblingstexteditor und passen diese Datei von Hand an.
Listing 1
# netselect -vv ftp.debian.org ftp.tu-chemnitz.de ftp.tu-dresden.de ftp.informatik.hu-berlin.de Running netselect to choose 1 out of 4 addresses. ............. ftp.informatik.hu-berlin.de 9999 ms 30 hops 0% ok ftp.debian.org 752 ms 12 hops 100% ok (10/10) [ 1654] ftp.tu-chemnitz.de 9999 ms 30 hops 0% ok ftp.tu-dresden.de 9999 ms 30 hops 0% ok 1654 ftp.debian.org
Erste Schritte
Für ein besseres Verständnis der Apt-Befehle lohnt es sich, einen Blick auf die interaktive Shell Aptsh aus dem gleichnamigen Paket zu werfen. Falls noch nicht auf dem System vorhanden, installieren Sie es mittels apt-get install aptsh einfach nach. Danach rufen Sie die Aptsh über das gleichnamige Kommando auf.
Die Entwickler der Aptsh beschreiben diese als “nette Pseudo-Shell mit Auto-Vervollständigung und vereinfachtem Zugriff auf die Apt-Befehle”. Die Parameter von Apt-get und Apt-cache stehen als einzelne Kommandos in der Aptsh bereit. Damit entfällt das wiederholte Aufrufen der vollständigen Apt-get und Apt-cache-Kommandos. Je nach Kommando ruft die Aptsh im Hintergrund die entsprechenden Apt-Befehle auf.
Nach dem Start der Aptsh fällt als erstes der bunte Prompt auf. Einen ersten Überblick zu den Kommandos erhalten Sie, indem Sie [Tab] zweimal drücken (Abbildung 1). Dabei nutzen Sie die Eigenschaft aus, dass die Aptsh Kommandos und Paketnamen komplettiert. Dieses automatische Vervollständigen kennen Sie schon aus der Bash.

Abbildung 1: Über das Autovervollständigen erhalten Sie sehr schnell einen Überblick über die integrierten Kommandos.
Für eine ausführliche Hilfe steht das Kommando help bereit. Die Aptsh zeigt daraufhin den Inhalt der englischsprachigen Manpage an. Ein ebenfalls englischsprachiges Handbuch mit vielen Beispielen verbirgt sich hinter help-howto. Um nur eine kurze Hilfe zu einem bestimmten Befehl zu erhalten, ergänzen Sie obigen Aufruf von help um das Kommando (Abbildung 2).
Möchten Sie die Shell wieder verlassen, gelingt das über die Kommandos quit und exit, alternativ steht die Tastenkombination [Strg]+[D] bereit.
Umgang mit Paketen
Zu den am häufigsten genutzten Befehlen zählt zweifelsohne install Paketname. Er dient zum Installieren von Paketen (Abbildung 3). Ergänzen Sie den Paketnamen um ein Minuszeichen, entfernen Sie Pakete wieder aus dem System (siehe remove).

mc gelingt mit dem Befehl.” width=”300″ height=”202″ />
Abbildung 3: Die Installation des Midnight Commanders aus dem Paketmc gelingt mit dem Befehl. Der Befehl update aktualisiert die interne Paketdatenbank auf der Basis der in /etc/apt/sources.lst angegebenen Paketquellen. Sie sollten update regelmäßig und vor allem vor jedem Benutzen von install und upgrade ausführen, um nicht mit veralteten Listen zu arbeiten.
Mit upgrade ersetzen Sie die installierten Pakete durch aktuellere Versionen der gleichen Distribution. Regelmäßig Upgrades empfehlen sich schon wegen der Sicherheitsaktualisierungen.
Mit dist-upgrade verhält sich ähnlich wie upgrade. Hier aktualisiert das System nicht nur einzelne Pakete, sondern die komplette Distribution. Diese Aktion fällt unter Umständen sehr umfangreich aus. Daher empfiehlt es sich, vorab ausreichend Zeit einzuplanen. Das Erneuern der Pakete führt häufig zu veränderten Abhängigkeiten, die weitere Korrekturen nach sich ziehen können.
Das Löschen von installierten Paketen gelingt mit den beiden Kommandos remove Paketname und purge Paketname. Bei ersterem entfernen Sie nur die entsprechende Installation, wobei die Konfigurationsdateien unberührt bleiben. Ihre mühevoll erarbeiteten Einstellungen bleiben so erhalten und stehen bei einer erneuten Installation wieder bereit.
Mit purge hingegen löschen Sie die entsprechenden Konfigurationsdateien mit. Bitte beachten Sie, dass Apt von sich aus überprüft, ob das Löschen dabei auch andere Pakete beeinträchtigt. Pakete, die ohne das von Ihnen benannte Paket nicht mehr funktionieren, schlägt es ebenfalls zum Entfernen vor. Besonders, wenn Sie Bibliotheken oder grundlegende Pakete wie den Linux-Kernel zum Löschen auswählen, fällt die Liste zu entfernender Pakete sehr lang aus.
Bibliotheken, die noch im System lagern, aber keinen Bezug mehr zu anderen installierten Paketen aufweisen und daher nutzlos Speicherplatz belegen, kennzeichnet die Paketverwaltung als Waisen (“orphans”). Mit dem Kommando orphans erhalten Sie die passende Liste, die Sie mit autoclean bereinigen. Das verwandte Kommando orphans-all erweitert die Liste um alle Programme, die “beziehungslos” sind, also nicht nur Bibliotheken.
Apt verwendet einen Zwischenspeicher unter /var/cache/apt/archives/, um die Pakete zu parken, die Sie von einem Mirror bezogen haben. Möchten Sie ein Paket installieren, prüft Apt vorab, ob die Datei bereits dort vorliegt, und nutzt gegebenenfalls diese zur Installation. Falls noch nicht vorhanden, bezieht Apt das entsprechende Paket aus einer Paketquelle und legt eine Kopie im Zwischenspeicher ab.
Je größer Ihre Experimentierfreude ausfällt, desto mehr nimmt der Umfang des Zwischenspeichers zu. Statt den Cache von Hand zu bereinigen, indem sie die Pakete im Verzeichnis Stück für Stück löschen, nutzen Sie einfach das Kommando clean. Dieses löscht alle Pakete aus dem Zwischenspeicher.
Das Kommando show Paketname liest aus der Datenbank die Informationen zum angegebenen Paket aus und zeigt diese an. Mit showpkg Paketname hingegen sehen Sie neben der verfügbaren Version alle Abhängigkeiten. Die Befehle depends Paketname und rdepends Paketname liefern nur die jeweiligen Abhängigkeiten separat. Mittels unmet Paketname zeigt Aptsh alle unerfüllten Abhängigkeiten sowie die jeweiligen Empfehlungen (Abbildung 4).

Abbildung 4: Da Apt intern die Abhängigkeiten zwischen den Paketen verwaltet, sehen Sie auf einen Blick, welche Pakete eine Installation noch mit ins System holt.
Meistens informativer Natur sind die statistischen Daten zur Paketdatenbank, die das Kommando stats zugänglich macht (Abbildung 5). Die Zahlen basieren auf den Paketen, über die das System Bescheid weiß, und weicht auf Ihrem Linux-System in der Regel von denen im Beispiel ab.
Eine vollständige Übersicht über alle Pakete in den angegebenen Paketquellen gibt das Kommando pkgnames aus. Die Liste aller Pakete, die sich gerade im Zwischenspeicher befinden, ermitteln Sie mit dump.
Da beide Ausgaben meist sehr ausführlich ausfallen, helfen die drei Shell-Tools Grep, Sort und Less, um das Wesentliche zu extrahieren und den Überblick zu behalten (Listing 2). Dabei fischt Grep nur solche Zeilen aus der Ausgabe von dump, die das Wort Package enthalten; Sort sortiert die Ausgabe aufsteigend und übergibt sie dann an den Pager Less.
Listing 2
aptsh> dump | grep "Package:" | sort | less Package: 2vcard Package: 3270-common Package: 3c5x9utils Package: 3dchess Package: 3depict ... aptsh>
Mit dem Kommando search starten Sie eine Volltextsuche in der Paketdatenbank über die Paketnamen und deren Beschreibungen. Die Aptsh versteht auch find anstatt von search. Der Beitrag “Ordnung halten im Paketezoo” [3] beschäftigt sich ausführlich mit diesem Thema.
Als weitere Befehle, die Details zu einem Paket ausgeben, bietet die Aptsh neben madison auch noch dotty an. Ersterer zeigt die Versionen eines Programms tabellarisch an, welche die ausgewählten Quellen anbieten; Letzterer generiert einen Graphen im Dot-Format, der die Abhängigkeiten eines Pakets nachzeichnet.
Für die Liebhaber des Veterans Dselect sind die Kommandos dumpavail und dselect-upgrade interessant: Das erste gibt nur die Paketliste aus, das zweite aktualisiert die Dselect-Datenbank.
Aptsh-spezifische Befehle
Die Apt-Shell verfügt über eigene Kommandos, zu denen es kaum Pendants bei Apt-get und Apt-cache gibt. Mit ls Muster und rls Muster stöbern Sie in den Quellen nach dem angegebenen Muster. Das r in rls steht für die Unterstützung regulärer Ausdrücke im Suchmuster (Abbildung 6).

Abbildung 6: Durch reguläre Ausdrücke reduzieren Sie das Suchergebnis geschickt auf die gewünschten Einträge.
Für eine kurze Information zu einem Paket rufen Sie das Kommando whatis Paketname auf. Das gibt die kurze Beschreibung aus der Control-Datei des Debian-Pakets aus. Abbildung 7 zeigt die Ausgabe für die Pakete Dpkg, Aptitude, Xara-gtk und Packagesearch.

Abbildung 7: Kurzinformationen zu den ausgewählten Paketen helfen bei der schnellen Auswahl von Software.
Das Aptsh-Kommando listfiles Paketname entspricht dem Kommando dpkg -L Paketname (oder dpkg --listfiles Paketname). Darüber erhalten Sie eine Auflistung aller Dateien, die in dem bezeichneten Debian-Paket enthalten sind (Abbildung 8).

listfiles holt es ans Licht.” width=”276″ height=”300″ />
Abbildung 8: Was verbirgt sich in einem Paket? Das Kommandolistfiles holt es ans Licht. Auf die Frage, welches Paket eine bestimmte Datei enthält, gibt das Kommando whichpkg Dateiname eine Antwort. Es entspricht dem Aufruf von apt-file search Dateiname, durchsucht die einzelnen Pakete und liefert als Ergebnis eine Liste der Pakete zurück. Abbildung 9 zeigt das Suchergebnis für den schlanken PDF-Betrachter Mupdf – die beiden Pakete mupdf und mupdf-tools.

whichpkg.” width=”300″ height=”147″ />
Abbildung 9: Bei der Suche nach bestimmten Dateien in einem Paket unterstützt Sie die Apt-Shell mit dem Befehlwhichpkg.Falls Sie weder Kommandozeile noch Aptsh mögen, stehen noch andere Programme zum Verwalten der Pakete bereit. Dazu zählen Aptitude, Synaptic, Xara und Packagesearch. Während sich Aptitude im Terminal und auf kleineren Maschinen wohlfühlt, setzen die drei letztgenannten ein funktionierendes X-Window-System und deutlich mehr verfügbare Ressourcen voraus.
Fazit
Mit den Werkzeugen von Apt-get und Apt-cache können Sie das gesamte Debian-basierte System installieren und stets zuverlässig auf dem aktuellen Stand halten. Die Apt-Shell vereinfacht das Bedienen der Werkzeuge. Wenn Sie nähere Informationen zum Inhalt der Pakete haben möchten, ist Apt-file das Richtige.
Verwenden Sie kein Debian und auch keines seiner Derivate, brauchen Sie trotzdem nicht auf die Vorteile von Apt zu verzichten: Diverse Portierungen stehen bereit, darunter Apt-rpm [4] und sogar Apt für Windows [5].
Infos
[1] Paket Netselect-apt: http://packages.debian.org/squeeze/netselect-apt
[2] Paket Netselect: http://packages.debian.org/squeeze/netselect
[3] Pakete finden mit Debtags: Frank Hofmann, “Dschungelführer”, LU 06/2012, S. 22, https://www.linux-community.de/25926
[4] Apt-rpm: http://apt-rpm.org
[5] Apt für Windows: http://code.google.com/p/apt-windows/







