Product SiteDocumentation Site

6.4. Benutzeroberflächen: aptitude, synaptic

APT ist ein C++ Programm, dessen Programmcode hauptsächlich in der Laufzeit-Bibliothek libapt-pkg enthalten ist. Die Nutzung einer Laufzeit-Bibliothek vereinfacht die Schaffung von Benutzerschnittstellen (Oberflächen), da der in der Bibliothek enthaltene Code einfach wiederverwendet werden kann. Historisch betrachtet war apt-get nur als Test-Benutzerschnittstelle für libapt-pkg gedacht, aber der Erfolg neigt dazu, diese Tatsache zu verschleiern.

6.4.1. aptitude

aptitude ist ein interaktives Programm, das im Pseudo-Grafikmodus der Console benutzt werden kann. Sie können durch eine Liste der installierten und der verfügbaren Pakete blättern, die verfügbaren Informationen einsehen und Pakete zur Installation oder Deinstallation auswählen. Das Programm wurde für die Nutzung durch Administratoren entworfen, so dass die Standardverhaltensweisen intelligenter als die von apt-get sind und die Oberfläche einfacher zu verstehen ist.
Das aptitude Paketverwaltungsprogramm
Abbildung 6.1. Das aptitude Paketverwaltungsprogramm

Nach dem Start zeigt aptitude eine Paketliste, sortiert nach Status (installiert, nicht installiert, installiert aber nicht auf den Spiegelservern verfügbar, andere Anzeigeoptionen, virtuelle Pakete und neue Pakete, die kürzlich auf den Spiegelservern entdeckt wurden). Sie können verschiedene Ansichten nutzen, um die Liste thematisch zu durchsuchen. In jedem Fall zeigt aptitude eine Liste, die Kategorien und Pakete kombiniert. Kategorien sind in einer Baumstruktur organisiert, deren Äste mit den Tastenkombinationen Eingabe, [ und ] auf- und zugeklappt werden können. + wählt ein Paket zur Installation aus, - wählt es zum Entfernen aus und _ zum vollständigen Löschen (Hinweis: Diese Tastenkombinationen können auch auf Kategorien angewendet werden, wobei die jeweilige Aktion dann auf alle Pakete der Kategorie angewendet wird). u aktualisiert die Liste der verfügbaren Pakete und Shift+u bereitet eine globale Systemaktualisierung vor. g wechselt in eine Übersicht der anstehenden Änderungen (ein weiterer Druck auf g führt die Änderungen durch) und q beendet die aktuelle Ansicht. Wenn Sie dies in der initialen Ansicht tun, beendet dies aptitude.
Um nach einem Paket zu suchen, tippen Sie /, gefolgt von einem Suchmuster. Dieses Muster wird mit den Paketnamen verglichen, kann aber auch auf die Beschreibung angewendet werden (durch ein vorangestelltes ~d), auf den Bereich (durch ein vorangestelltes ~s) oder auf ein anderes Kriterium, wie in der Dokumentation genauer beschrieben. Mit den gleichen Mustern können Sie die Liste der angezeigten Pakete filtern: Drücken Sie die l-Taste (wie in limit) und geben Sie das Muster ein.

6.4.1.1. Automatisch installierte Pakete nachverfolgen

Eine der wichtigsten Funktionalitäten von aptitude ist das Verfolgen von Paketen, die nur auf Grund von Abhängigkeiten installiert wurden (diese Funktionalität wurde mit Lenny ebenfalls in apt-get integriert). Diese Pakete werden "automatisch installiert" genannt und werden durch ein "A" in der Paketliste gekennzeichnet – oftmals enthalten sie beispielsweise Bibliotheken. Wenn ein Paket entfernt wird, werden dazugehörende automatisch installierte Pakete ebenfalls zum Entfernen vorgemerkt, es sei denn, andere, nicht automatisch installierte Pakete, hängen ebenfalls von ihnen ab. Es ist möglich, ein Paket als automatisch installiert zu kennzeichnen (mit Shift+m), oder die Kennzeichnung zu entfernen (mit m). Wird ein System mit aptitude verwaltet, ist es eine hilfreiche Gewohnheit, alle Pakete als automatisch zu markieren, die Sie nicht direkt benötigen, damit diese entfernt werden, sobald sie nicht mehr benötigt werden. Sie können entweder durch die Paketliste navigieren und Shift+m benutzen, oder Sie können ganze Bereiche markieren (zum Beispiel libs). Diese Angewohnheit kann Ihnen helfen, Ihr System aufgeräumt zu halten und bietet eine einfache Möglichkeit, die auf dem System benutzten Pakete ohne all die Bibliotheken und Abhängigkeiten anzuzeigen. Das passende Suchmuster dazu ist ~i!~M, das Sie im Filtermodus eingeben, den Sie mit l aktivieren. Es legt fest, dass nur als nicht-automatisch markierte (!~M) installierte l Pakete angezeigt werden.
Manchmal möchte man wissen, warum ein automatisch installiertes Paket installiert wurde. Um auf der Kommandozeile an diese Information zu gelangen, können Sie aptitude why Paket benutzen:
$  aptitude why python-debian
i   aptitude         Recommends apt-xapian-index         
i A apt-xapian-index Depends    python-debian (>= 0.1.15)

6.4.1.2. Verwalten von Empfehlungen, Vorschläge und Aufgaben

Eine weitere interessante Eigenschaft von aptitude ist, dass es die Empfehlungen zwischen Paketen berücksichtigt und dabei dem Benutzer trotzdem gestattet von Fall zu Fall die Wahl zu treffen, ausgewählte Pakete nicht zu installieren. Zum Beispiel empfiehlt das Paket gnome-desktop-environment gnome-accessibility (neben anderen). Wenn Sie das erste zur Installation auswählen, wird das zweite ebenfalls ausgewählt (und als automatisch installiert markiert, falls es nicht bereits installiert ist). Drücken Sie g, wird dies deutlich: gnome-accessibility taucht in der Vorschau der der anstehenden Aktionen auf, unter "Pakete, die von anderen Paketen vorgeschlagen werden". Trotzdem bleibt Ihnen die Wahl, das Paket nicht zu installieren, indem Sie es abwählen, bevor Sie die anstehenden Aktionen ausführen lassen.
Beachten Sie, dass die Verfolgung von Empfehlungen nicht bei Aktualisierungen greift. Wenn beispielsweise eine neue Version von gnome-desktop-environment ein Paket vorschlägt, das es vorher nicht vorgeschlagen hat, wird dieses neue Paket nicht zur Installation ausgewählt. Es wird allerdings in der Aktualisierungsliste angezeigt, damit der Administrator es trotzdem zur Installation auswählen kann.
Vorschläge zwischen Paketen werden ebenfalls in Betracht gezogen, allerdings angepasst an ihren jeweiligen Status. Beispielsweise schlägt gnome-desktop-environment gnome-audio vor, welches dann in der Vorschau (in der Kategorie "Pakete, die von anderen Paketen vorgeschlagen werden") angezeigt wird. Auf diesem Weg ist es für den Administrator sichtbar und er kann entscheiden, ob er den Vorschlag annimmt, oder nicht. Da es sich nur um einen Vorschlag und nicht um eine Abhängigkeit handelt, wird das Paket nicht automatisch ausgewählt – seine Auswahl bedarf eines manuellen Eingriffs seitens des Benutzers (aus diesem Grund wird das Paket auch nicht als automatisch installiert markiert).
Im gleichen Sinn: Beachten Sie, dass aptitude intelligenten Gebrauch vom Aufgaben-Konzept macht (Aufgaben in diesem Kontext sind Programmgruppen für dedizierte Zwecke/Aufgaben). Da Aufgaben (Tasks) als Kategorien in den Paketlisten-Darstellungen angezeigt werden, können Sie entweder eine vollständige Aufgabe zur Installation oder zum Entfernen auswählen, oder Sie können die Paketliste der Aufgabe durchgehen, um eine Untermenge auszuwählen.

6.4.1.3. Bessere Problemlösungs-Algorithmen

Um diesen Abschnitt zu beschließen, lassen Sie uns festhalten, dass aptitude im Vergleich zu apt-get über raffiniertere Algorithmen verfügt, wenn es darum geht, schwierige Situationen aufzulösen. Wenn eine Folge von gewünschten Aktionen in Kombination zu einem inkohärenten System führen würde, wertet aptitude verschiedene mögliche Szenarien aus und schlägt diese in absteigender Relevanz vor. Trotzdem sind diese Algorithmen nicht unfehlbar. Glücklicherweise besteht immer die Möglichkeit, die auszuführenden Aktionen von Hand auszuwählen. Wenn die aktuell ausgewählten Aktionen zu Widersprüchen führen, wird im oberen Teil des Bildschirms eine Anzahl von beschädigten Paketen angezeigt (Sie können mit b direkt zu diesen Paketen navigieren). Dann können Sie manuell eine Lösung für die gefundenen Probleme zusammenstellen. Im Besonderen haben Sie Zugang zu den verschiedenen verfügbaren Versionen, indem Sie das Paket mit Enter anwählen. Löst die Auswahl einer der verfügbaren Versionen das Problem, sollten Sie sich nicht scheuen, Gebrauch von dieser Funktion zu machen. Sinkt die Anzahl der beschädigten Pakete auf Null können Sie beruhigt in die Zusammenfassung der anstehenden Aktionen springen und diese ein letztes Mal prüfen, bevor Sie sie ausführen.