Aptitude: Software-Installation unter Debian

Aus LinuxUser 06/2004

Aptitude: Software-Installation unter Debian

Paketdienst

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.

Das ausgeklügelte Paketmanagement mit Abhängigkeiten und Konflikten ist einer der größten Vorteile von Debian GNU/Linux. Bei der Fülle an Paketen, die Debian mitliefert – praktisch jede freie Software liegt bereits als an die Distribution angepasstes Paket vor – wünscht man sich aber oft Hilfe, um in dieser Masse zu finden, was man braucht.

Aptitude bietet eine komfortable Oberfläche, um Pakete zu finden, zu installieren und wieder zu entfernen. Im Vergleich zur Installation über die Kommandozeile bietet Aptitude einen besseren Überblick über die Paketliste.

Debian

Ein Debian-Paket ist eine Datei mit der Endung .deb, die zusammengehörige Programme und Daten enthält. Zusätzlich – und hier liegt der Unterschied zu gewöhnlichen Archivdateien – informiert es über Metadaten wie Version und Abhängigkeiten von anderen Paketen.

Um jedes Debian-Paket kümmert sich ein so genannter Maintainer. Er ist dafür zuständig, die Software so zu bündeln, dass sie sich sauber in laufende Debian-Systeme einbindet und den Debian-Richtlinien [2] entspricht.

Mit Debian-Paketen interagiert man gewöhnlich aber nicht von Hand: Das Programm dpkg arbeitet mit ihnen, beispielsweise installiert es Pakete oder zeigt ihre Metadaten an.

Dpkg weiß aber nur über bereits auf dem System vorhandene Software Bescheid; setzt ein neues Paket noch nicht installierte Programme voraus, bricht es den Vorgang mit einer Fehlermeldung ab und überlässt es dem Benutzer, das Problem zu lösen. Die Programmbibliothek APT (“Advanced Package Tool”) kennt darüber hinaus die Metadaten aller in den eingestellten Quellen verfügbaren Pakete; es erkennt Abhängigkeiten und löst Konflikte auf (Kasten 1).

Kasten 1: Debian-Quellen

Aus der Konfigurationsdatei /etc/apt/sources.list erfährt APT, wo es nach zu installierenden Paketen suchen soll. Dabei bedient es sich einer Datenbank, die zu allen verfügbaren Paketen verzeichnet, wo sie zu finden sind. Fügt man ein Datenquelle hinzu, liest APT die neue Paketliste ein und ergänzt die zusätzlichen Programme und Versionen in der eigenen Datenbank. Dadurch weiß APT bei einer angeforderten Installation, welche CD der Benutzer einlegen muss oder von welchem Server es das Paket herunterladen kann. Wer die Datei sources.list nicht manuell verändern möchte, dem hilft das Programm apt-setup oder beim Hinzufügen von CDs der Befehl apt-cdrom add.

Kasten 2: Debian-Distributionen

Es gibt drei verschiendene Debian-Distributionen. Stable ist die offiziell freigegebene Version, die nur selten ein komplettes Update erfährt. Dafür ist die Software in dieser Distribution ausgiebig getestet und Sicherheitsprobleme werden schnell behoben. Die derzeit stabile Version trägt den Codenamen Woody.

In der unstable-Version, deren Name immer Sid bleibt, findet die eigentliche Entwicklung statt, daher sind hier immer die aktuellsten Versionen aller Pakete zu finden, allerdings in einer ständigen Bearbeitungs- und Testphase.

Testing bildet den Mittelweg zwischen stabiler und unstabiler Variante: Pakete wandern hier erst hinein, nachdem sie eine Weile ohne schwerwiegende Fehler in unstable waren. Der Nachteil ist dabei, dass es auch für wichtige Sicherheits-Updates keine Ausnahme von dieser Regel gibt; es dauert also oft eine Weile, bis es hier ein repariertes Paket gibt. Testing stellt den Nachfolger der aktuellen stable-Ausgabe dar und trägt derzeit den Namen Sarge.

Die Standard-Software für APT bildet eine Werkzeugsammlung aus den Kommandozeilen-Tools apt-get, apt-cache, apt-config, apt-cdrom und apt-setup. Der Befehl apt-get install aptitude installiert Aptitude inklusive aller dazu nötigen Bibliotheken. Eine genaue Erklärung zur Konfiguration von APT und der Benutzung mit dem Kommandozeilenwerkzeugen bietet [6].

Abbildung 1 fasst die Beteiligten zusammen: APT besorgt angeforderte Debian-Pakete inklusive der Abhängigkeiten aus den angegebenen Quellen und lässt sie dann durch dpkg installieren. Neben den Kommandozeilenwerkzeugen und Aptitude gibt es dafür verschiedene grafische Oberflächen wie Synaptic [3], KPackage [4] und Gnome-APT.

Oberflächlichkeiten

Weg von der Kommandozeile führt Aptitude: Es bietet keine grafische Oberfläche im klassischen Sinne, sondern bedient sich der curses-Bibliothek, die mit Hilfe von Textzeichen grafische Elemente wie Fenster und Menüs darstellt. Das hat den Vorteil, dass es sich auch auf Systemen, auf denen keine grafische Oberfläche läuft oder beim Kommandozeilen-Login per ssh nutzen lässt.

Abbildung 1: Verschiedene Ebenen sorgen für die reibungslose Paketinstallation.

Abbildung 1: Verschiedene Ebenen sorgen für die reibungslose Paketinstallation.

Obwohl sein Vorteil gegenüber apt-get und Konsorten gerade in der interaktiven Benutzeroberfläche liegt, lässt sich auch Aptitude per Kommandozeile steuern, die wichtigsten Aktionen zeigt Tabelle 1. Dazu starten Sie es in der Form

aptitude Aktion

Tabelle 1: Aptitude-Aktionen per Kommandozeile

install Paketname Installiert das angegebene Paket.
remove Paketname Deinstalliert das angegebene Paket.
purge Paketname Deinstalliert das angegebene Paket und löscht die Konfigurationsdateien.
hold Paketname Verhindert, dass das angegebene Paket aktualisiert wird.
unhold Paketname Lässt beim angegebenen Paket wieder Aktualisierungen zu.
markauto Paketname Markiert das angegebene Paket als automatisch installiert.
unmarkauto Paketname Markiert das angegebene Paket als manuell installiert.
update Aktualisiert die Liste der verfügbaren Pakete. upgrade Aktualisiert Pakete, für die neuere Versionen vorliegen.
dist-upgrade Aktualisiert Pakete auch dann, wenn dafür andere installiert oder gelöscht werden müssen.
search Suchmuster Sucht nach Paketen, die das Suchmuster enthalten.
clean Löscht alle heruntergeladenen Paketdateien von der Festplatte.
autoclean Löscht heruntergeladene Pakete von der Festplatte, wenn aktuellere Versionen vorliegen.
download Paketname Lädt das angegebene Paket herunter, ohne es zu installieren.

Nach dem Aufruf von aptitude ohne Parameter präsentiert das Programm zunächst eine Menüleiste, eine Kurzhilfe zu den wichtigsten Tasten sowie im Hauptfenster oben die Paketliste und darunter ein Beschreibungsfenster mit Details zum gerade markierten Eintrag (Abbildung 2). Ist ein Maus-Cursor vorhanden wie im Terminal-Fenster einer grafischen Oberfläche, lässt sich Aptitude auch damit steuern, ansonsten führt [F10] ins Menü.

Aptitude arbeitet mit verschiedenen so genannten Ansichten, die das gleichnamige Menü verwaltet. Die Taste [q] schließt eine Ansicht, bei der letzten bedeutet dies das Programmende. [F6] und [F7] führen zur nächsten bzw. vorherigen Ansicht.

Abbildung 2: Die Kategorien in der Voreinstellung.

Abbildung 2: Die Kategorien in der Voreinstellung.

In der Paketliste signalisiertd das Symbol --- neben einem Eintrag eine Kategorie, die Sie mit [Enter] oder einem Doppelklick aufklappen. Haben Sie sich mit den Pfeiltasten durch die Kategorien zu einem einzelnen Paket bewegt, zeigt das Beschreibungsfenster Details dazu an (Abbildung 3). Darin scrollen Sie mit [a] nach oben und mit [z] nach unten. Trotz der fortschreitenden Internationalisierung von Debian gibt es die Paketbeschreibungen bisher leider nur auf Englisch.

Abbildung 3: Die Hierarchie bringt Struktur in die Paketliste.

Abbildung 3: Die Hierarchie bringt Struktur in die Paketliste.

Links neben jedem Paket stehen ein oder zwei Buchstaben, die Auskunft über seinen aktuellen Status geben. Aus dem ersten, immer vorhandenen, lässt sich ablesen, ob ein Paket installiert ist (i) oder nicht (p), die weniger häufigen Alternativen erklärt Tabelle 2. Der zweite Buchstabe gibt Auskunft über die Aktion, die Aptitude mit diesem Paket ausführen soll. Hier sind meistens d zum Deinstallieren oder i zum Installieren anzutreffen; den Rest zeigt Tabelle 3. Ist keine Aktion vorgesehen, steht hier schlicht nichts.

Tabelle 2: Statusbuchstaben

i Installiert.
p Nicht installiert.
v Virtuell: dieses Paket ist nicht echt; es gibt mehrere echte Pakete, die installiert werden können, um diese Abhängigkeit zu erfüllen.
u Heruntergeladen und entpackt, aber nicht konfiguriert.
C Halb konfiguriert.
H Halb installiert.
c Nicht installiert, aber die Konfigurationsdateien sind noch vorhanden – gewöhnlich von einer früheren Installation.
B Kaputt: der Status des Pakets im System ist unklar.
E Interner Aptitude-Fehler.

Tabelle 3: Aktionsbuchstaben

i Installieren.
d Deinstallieren, die Konfigurationsdateien bleiben auf dem System.
h Halten: dieses Paket nicht aktualisieren.
p Vollständig Löschen, auch Konfigurationsdateien entfernen.
r Ein installiertes Paket erneut installieren.
u Das Paket auf eine neuere Version aktualisieren.

Ein Druck auf [Enter] oder ein Doppelklick auf ein Paket öffnet eine neue Ansicht, die die Metadaten des Pakets zeigt. Wichtig sind hierbei vor allem die Abhängigkeiten unter Depends, die Pakete, die nicht gleichzeitig installiert sein dürfen unter Conflicts und unter Recommends stehen die Pakete, die nicht unbedingt zum Funktionieren nötig aber hilfreich sind. [q] schließt die Ansicht und kehrt in die vorherige zurück.

Action!

Wollen Sie ein Paket installieren, drücken Sie die Taste [+], während Sie es mit dem Cursor markiert haben; die aktuelle Ansicht – ob Paketliste oder Detailansicht – ist hierbei egal. Dies sieht das gewählte sowie die weiteren benötigten Pakete zur Installation vor. Zum Deinstallieren dient [-], wollen Sie nicht nur die Programmdateien, sondern auch die gesamte Konfiguration los werden, drücken Sie [_].

Aptitude merkt sich, welche Pakete es selbst zur Installation gewählt hat, um die Abhängigkeiten eines anderen zu erfüllen; sobald keine installierte Software mehr nach einem nur aus diesem Grund vorhandenen Paket verlangt, wählt Aptitude es automatisch zur Deinstallation aus. Da Aptitude selbst und nicht die APT-Bibliothek diese Funktion bereitstellt, funktioniert dies allerdings nur bei mit Aptitude installierten Paketen.

Haben Sie mit [+] ein Paket manuell zur Installation markiert, passiert zunächst noch nichts; erst wenn Sie mit [g] für “go” das Startsignal geben, geht es los: Aptitude präsentiert in einer neuen Ansicht einen Überblick über die zu installierenden und zu löschenden Pakete, sortiert nach der Motivation: Wurde ein Paket auf Grund von Abhängigkeiten von Aptitude oder von der Anwenderin selbst für eine Aktion ausgewählt? Eine Bestätigung durch erneuten Druck auf [g] startet die Veränderung; haben Sie Aptitude nicht mit root-Rechten aufgerufen, fragt das Programm Sie jetzt nach dem Passwort (Abbildung 4).

Abbildung 4: Erst zum Ausführen der Aktionen sind Root-Rechte nötig.

Abbildung 4: Erst zum Ausführen der Aktionen sind Root-Rechte nötig.

Wenn die APT-Konfiguration Internet-Server als Datenquellen kennt, aktualisieren Sie die Bestände von diesen Servern mit der Taste [u]. Um installierte Pakete direkt zum Update zu markieren, falls eine neue Version vorliegt, drücken Sie danach [U]. Wollen Sie dagegen ein Paket explizit nicht aktualisieren, drücken Sie [=] und die derzeitige Version bleibt erhalten, ohne Rücksicht auf eventuelle Neuerungen. Als Notnagel zur Reparatur beschädigter Pakete schließlich dient eine Neuinstallation, die die Taste [L] auslöst.

Gruppenbildung

Sie definieren selbst, nach welchen Kriterien Aptitude die Pakete gruppiert. Mit [G] öffnen Sie ein Dialogfenster, in dem Sie die Sortierung ändern; die Voreinstellung lautet:

filter(missing),task,status,section(subdir,passthrough),section(topdir)

Der Eintrag filter(missing) versteckt alle Pakete, die nicht installierbar sind; diese Option sorgt also dafür, dass nur auf CDs oder Servern vorhandene Pakete sichtbar sind.

Der nächste Eintrag task bewirkt, dass die Kategorie Aufgaben überhaupt erscheint. Sie enthält spezielle Pakete, die selbst keine Programmdateien bereitstellen, aber durch ihre Abhängigkeiten bei ihrer Auswahl dafür sorgen, dass andere Einzelpakete installiert werden. So hängt beispielsweise das Paket kde von den KDE-Basispaketen ab; wählen Sie es aus, installiert APT automatisch alle benötigten Komponenten des KDE-Grundsystems.

Die beiden section-Einträge der Voreinstellung regeln die Gruppierung nach den beiden Sektionen, in die jedes Debian-Paket eingeordnet ist: In der Obersektion (topdir) enthält beispielsweise main alle Pakete der Hauptdistribution und non-free zusätzliche Software, die nach den Debian-Richtlinien nicht als frei gilt. In der nächsten Hierarchieebene gibt es jeweils Untersektionen (subdir) wie devel für Entwicklungswerkzeuge oder games für Spiele.

Der Eintrag section(subdir,passthrough) sorgt dafür, dass die Gliederung nach Untersektion stattfindet; dass sie vor section(topdir) steht, bewirkt, dass Aptitude – wie in Abbildung 3 – die Obersektionen innerhalb der Untersektionen darstellt. Die Option passthrough verhindert, dass Pakete und Kategorieren in aufwändigeren Hierarchiegliederungen mehrfach vorkommen. Vertauschen Sie die beiden section-Einträge der Voreinstellung, erhalten Sie einen Baum, der statt PaketstatusUntersektionObersektion in der Reihenfolge PaketstatusObersektionUntersektion gliedert.

Weiterhin gruppieren Sie auf Wunsch mit dem Eintrag priority nach Wichtigkeit des Pakets und mit action nach der durchzuführenden Aktion. Bei letzterer Möglichkeit verschwinden allerdings alle Einträge aus der Paketliste, für die keine Aktion vorgesehen ist.

Als Abschluss der Liste steht bei Bedarf noch eine der beiden Optionen versions oder deps. Sie machen aus den Einzelpaketen eigene Kategorien: Bei versions enthalten diese neuen Ebenen jede verfügbare Paketversion als eigenen Eintrag, deps listet in der Hierarchie zusätzlich die Abhängigkeiten und Konflikte auf.

Wenn Sie nur eine komplette Liste aller Pakete brauchen, lassen Sie die Gruppierungsauswahl leer. Um einen Überblick über die bisher vorgemerkten Aktionen zu bekommen, tragen Sie nur status,action ein.

Die Reihenfolge, in der Aptitude Pakete innerhalb der Kategorien anzeigt, lässt sich mit [S] festlegen. Zur Wahl stehen name – die Standardeinstellung – zur alphabetischen Sortierung, installsize, um nach dem Platzbedarf auf der Festplatte zu ordnen, und priority, das die Wichtigkeit des Pakets berücksichtigt. Ein vorangestelltes ~ dreht die Reihenfolge um.

Suchen

Zum Auffinden von Paketen, die bestimmte Ausdrücke enthalten, öffnet Aptitude mit [/] die eingebaute Suchfunktion. Im erscheinenden Dialogfenster geben Sie einen Begriff ein und die Markierung springt auf das erste passende Paket. [n] wiederholt die Suche und geht zum nächsten Treffer. Ohne weitere Angaben durchforstet Aptitude die Paketnamen, mit Hilfe von regulären Ausdrücken[5] lassen sich dabei sehr genaue Angaben machen: Zum Beispiel fahndet ^lib.*gtk nach Paketnamen, die mit lib beginnen und zusätzlich gtk enthalten.

Doch die Suche lässt sich auf andere Metadaten ausdehnen: Ein vorangestelltes ~s sucht nach einer Sektion, ~n kehrt zum Paketnamen zurück: ~snet~nftp sucht beispielsweise Pakete in der Sektion net, die ftp im Namen tragen. Tabelle 4 zeigt die möglichen Spezifikationen.

Tabelle 4: Spezielle Suchmöglichkeiten

~b Kaputte Pakete suchen.
~d In der Beschreibung der Pakete suchen.
~i Installierte Pakete suchen.
~m Im Maintainer-Feld suchen.
~n Im Paketnamen suchen.
~s Im Sektionsnamen suchen.

Um bei vielen Treffern nicht mühsam manuell durch die Pakete navigieren zu müssen, erzeugt [l] eine Ansicht, die nur noch die Treffer enthält: Nach der Eingabe des Suchbegriffs bleiben in der Liste nur noch passende Pakete.

Wer es bereits gewohnt ist, mit apt-get und seinen Helfern zu arbeiten, mag die Umstellung auf Aptitude scheuen. Doch es bietet einige Features, die mit anderen Mitteln nur schwer oder gar nicht zu erreichen sind. Zudem programmieren die Aptitude-Entwickler aktiv weiter, Verbesserungen sind also zu erwarten.

Der Autor

Dirk Materlik hat gerade sein Informatikstudium an der Freien Universität Berlin mit dem Diplom beendet und ist jetzt dabei, eine Firma zu gründen.

Glossar

GNU

Das GNU-Projekt (“Gnu is Not Unix”) hat sich 1984 mit dem Ziel gegründet, ein Unix-System zu entwickeln, das ausschließlich aus freier Software besteht. Linux ist der am weitesten verbreitete freie Unix-artige Kernel, aber theoretisch ist das Debian-Projekt offen für jede ebenfalls freie Alternative wie das noch nicht fertiggestellte Hurd [7] im Projekt “Debian GNU/Hurd”. Der offizielle Name “Debian GNU/Linux” spezifiziert das Debian-GNU-System mit dem Linux-Kernel.

Maintainer

(engl. für “Instandhalter”) Eine Person, die sich darum kümmert, dass (in diesem Fall) ein Software-Paket gut in Schuss ist.

Metadaten

Daten über Daten; in einer MP3-Datei beispielsweise Informationen über Interpreten oder Art der enthaltenen Musik.

ssh

Die “Secure shell” stellt über eine verschlüsselte Verbindung eine Kommandozeile auf einem anderen Rechner bereit. Darüberhinaus lässt es sich benutzen, um praktisch jede Netzwerkverbindung ebenfalls verschlüsselt durchzuführen.

regulären Ausdrücken

Eine Unix-typische Art, Suchanfragen zu formulieren. Ein Punkt passt auf ein beliebiges Zeichen, ein Sternchen erlaubt die beliebig häufige Wiederholung des vorangehenden Zeichens: “.*” passt also auf alles, denn damit werden beliebige Zeichen in unbestimmter Anzahl angefragt.

Infos

[1] Debian GNU/Linux: http://www.debian.org/index.de.html

[2] Debian-Gesellschaftsvertrag und Richtlinien für freie Software: http://www.debian.org/social_contract.de.html

[3] Synaptic: http://www.nongnu.org/synaptic/

[4] KPackage: http://www.general.uwa.edu.au/u/toivo/kpackage/

[5] Kurzeinführung in reguläre Ausdrücke: http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm

[6] Handbuch zu APT: http://www.debian.de/doc/manuals/apt-howto/index.de.html

[7] Hurd: http://www.gnu.org/software/hurd/

LinuxUser 06/2004 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

1 Kommentar
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Frank-Uwe Habicht
4 Jahre her

Danke. Sehr klar und flüssig geschrieben,

Nach oben