6.3. ncurses-basierte Programme

6.3.1. tasksel

tasksel gehört zu den Anwendungen, die Sie vielleicht nur aus der textbasierten Installation von Debian her kennen. Nach der Zusammenstellung des Debian-Basissystems wird dieses Werkzeug üblicherweise einmal automatisch im Installationsprozess aufgerufen und gerät danach vollständig in Vergessenheit. Stattdessen helfen Ihnen APT und aptitude bei den Routineaufgaben.

Der Name ist eine Abkürzung und steht für task select, auf Deutsch übersetzbar mit „Aufgabe auswählen“. Das Paket tasksel [Debian-Paket-tasksel] beinhaltet lediglich die Benutzeroberfläche, das Paket tasksel-data [Debian-Paket-tasksel-data] hingegen eine Liste mit vorab festgelegten Standardaufgaben. Jeder genannten Aufgabe sind eine Reihe von Paketen zugeordnet.

Die beiden tasksel-Generationen 2.x und 3.x unterscheiden sich massiv voneinander. Während Generation 2 noch von aptitude abhängt, setzt Generation 3 hingegen verstärkt auf die Nutzung von Metapaketen (siehe Abschnitt 2.7.2, „Übergangspakete, Metapakete und Tasks“). Das zeigt sich sehr deutlich in den Ausgaben im Terminal, auf die wir unten genauer eingehen.

Abbildung 6.2. Softwareauswahl in tasksel

werkzeuge/werkzeuge-zur-paketverwaltung-ueberblick/ncurses-basiert/tasksel.png

Über die textbasierte Benutzeroberfläche und der dargestellten Liste wählen Sie zunächst mittels Pfeil- und Leertaste die gewünschten Aufgaben aus. Daraufhin werden alle Pakete „in einem Rutsch“ auf Ihrem Linuxsystem installiert, die diesen Aufgaben zugeordnet sind. Daß das durchaus etwas mehr Zeit in Anspruch nehmen kann, zeigt Abbildung 6.3, „Softwareinstallation via tasksel.

Abbildung 6.3. Softwareinstallation via tasksel

werkzeuge/werkzeuge-zur-paketverwaltung-ueberblick/ncurses-basiert/tasksel-download.png

Bei Debian und Ubuntu existieren viele Aufgaben als separate, vorgefertigte Pakete, die Ihnen die Einrichtung gemäß eines spezifischen Zwecks erleichtern, indem benötigte Pakete gruppiert werden. Diese Pakete tragen die Bezeichnung task- am Anfang des Paketnamens (siehe Abschnitt 2.7, „Debian-Pakete (Varianten)“). Dazu zählen bspw. die Aufgaben Mailserver, Webserver, Desktopumgebung und Laptop (siehe Abbildung 6.2, „Softwareauswahl in tasksel).

tasksel und andere Programme

Wenn das Paket tasksel installiert ist, zeigen sowohl Aptitude wie auch Synaptic (siehe Abschnitt 6.4.1, „Synaptic“) ebenfalls alle verfügbaren Aufgaben an. Aptitude verwendet dafür einen eigenen Ast als Sektion „Debian“ und Distributionsbereich „Tasks“, bei Synaptic hingegen heißt der Bereich (Sektion) „Tasks“.

Die textbasierte Benutzeroberfläche von tasksel ist jedoch nur eine Seite der Medaille. Das Programm ist ebenso für eine Steuerung über die Kommandozeile empfänglich. Die nachfolgende Liste zeigt die möglichen Schalter:

install Aufgabe
installiert alle Pakete, die für die Aufgabe notwendig sind
remove Aufgabe
entfernt alle Pakete, die zur angegebenen Aufgabe gehören
--list-tasks
listet alle Aufgaben auf, die tasksel kennt
--task-desc Aufgabe
zeigt eine Beschreibung der gewählten Aufgabe an
--task-packages Aufgabe
zeigt alle Pakete an, die zur gewählten Aufgabe gehören
-t (Langform --test)
Trockendurchlauf, Ausführung der gewünschten Aktion ohne echte Auswirkung

Über den Schalter --list-tasks stellt Ihnen tasksel alle vorab definierten Aufgaben zusammen (Debian). Am Buchstaben in der ersten Spalte der Ausgabe erkennen Sie, ob diese Aufgabe vollständig auf ihrem Linuxsystem umgesetzt wurde. Daneben sehen Sie das vergebene Kürzel und eine Kurzbeschreibung zur jeweiligen Aufgabe.

Ausgabe aller festgelegten Aufgaben von tasksel

$ tasksel --list-tasks
u desktop         Debian desktop environment
u web-server      Web server
u print-server    Printserver
u database-server SQL database
u dns-server      DNS Server
u file-server     File server
u mail-server     Mail server
u ssh-server      SSH server
u laptop          Laptop
$

Für jede Aufgabe ist eine Beschreibung der Aufgabe hinterlegt. Diese zeigen Sie mit dem Schalter --task-desc an[16]. Auf einem Ubuntu mit tasksel in der Version 2.88 sehen Sie diese Ausgabe:

Ausgabe der Aufgabenbeschreibung eines tasks (Ubuntu). 

$ tasksel --task-desc openssh-server
Selects packages needed for an Openssh server.
$

tasksel zeigt Ihnen mit Hilfe des Schalters --task-packages auch die Pakete an, die zu der entsprechenden Aufgabe gehören. Bei Debian und der Aufgabe ssh-server sieht das wie folgt aus — es verweist auf ein entsprechendes Debianpaket:

Pakete, die zu einer Aufgabe gehören (Debian). 

$ tasksel --task-packages ssh-server
task-ssh-server
$

Der gleiche Aufruf auf einem Ubuntu — hier für das Paket openssh-server — ergibt diese Liste (Auszug) mit allen benötigten Einzelpaketen:

Pakete, die zu einer Aufgabe gehören (Ubuntu). 

$ tasksel --task-packages openssh-server
python-six
python-chardet
python2.7
tcpd
openssh-server
ncurses-term
ssh-import-id
...
$

6.3.2. aptitude

Im Vergleich mit den anderen vorgestellten Programmen zur Paketverwaltung ist aptitude eine recht komplexe und umfangreiche Anwendung. Es ermöglicht Ihnen zwei unterschiedliche Wege der Bedienung — einerseits über die Kommandozeile mit Unterkommandos und Schaltern, andererseits über eine Ncurses-basierte, interaktive, farbige Bedienoberfläche im Terminal. Wieder aufgegeben wurden zwischenzeitlich die Versuche, aptitude auch mit einer graphischen Bedienoberfläche auszustatten (siehe [Beckert-Blog-Aptitude-Gtk-Will-Vanish]).

Das Programm ist verteilt auf die beiden Pakete namens aptitude und aptitude-common. Da das Programm nicht zur Standardauswahl bei der Installation von Debian GNU/Linux und Ubuntu gehört, richten Sie es am besten über den Aufruf apt-get install aptitude auf ihrem Linuxsystem ein. Das Paket aptitude-common wird über Paketabhängigkeiten automatisch mitinstalliert.

Ähnlich wie APT arbeitet aptitude mit Paketen, die sich entweder bereits lokal auf ihrem System befinden, oder noch auf einem Paketmirror vorliegen und vor der Installation noch von dort bezogen werden. Desweiteren bietet Ihnen das Programm die folgenden Funktionen (Auswahl, jeweils Angabe der Unterkommandos auf der Kommandozeile):

Dokumentation zu aptitude

Für den vollständigen Funktionsumfang und als Einstieg zum Programm ist das Lesen der Dokumentation zu aptitude [aptitude-dokumentation] empfehlenswert. Neben der Bedienung enthält es alle Unterkommandos, Optionen, Schalter und Möglichkeiten zur Konfiguration.

Wie bereits oben angerissen, können Sie aptitude über die Kommandozeile benutzen. Die Unterkommandos und Schalter sind bzgl. der Schreibweise und Bedeutung ähnlich derer von APT (siehe Abschnitt 6.2.2, „APT“).

Um hingegen über die Ncurses-basierte Bedienoberfläche zu agieren, starten Sie zunächst aptitude ohne weitere Optionen. Die mehrfarbige Bedienoberfläche enthält mehrere Elemente. Ganz oben finden Sie die verfügbaren, aktiven Tasten und deren Funktion. Über die Funktionstaste F10 oder alternativ mit Hilfe der Tastenkombination Ctrl+T aktivieren Sie bspw. die Menüleiste. Einige Terminals wie bspw. das Gnome-Terminal fangen die Funktionstaste ab und belegen diese für die eigene Menüleiste. Über den Eintrag BearbeitenTastenkombinationenMenütastenkombinationen aktivieren (de)aktivieren Sie das Verhalten. Mit Hilfe der Pfeiltasten navigieren Sie zwischen den einzelnen Menüeinträgen hin und her bzw. wählen die gewünschte Aktion aus.

Die beiden Fensterhälften darunter geben Ihnen eine Übersicht zu den Softwarepaketen. In der oberen Hälfte stellt aptitude in einer aufklappbaren Baumstruktur die Paketkategorien (Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“), den Distributionsbereich (Abschnitt 2.9, „Distributionsbereiche“) und den Paketnamen mit Versionsnummer dar. Sichtbar wird dabei die Version des installierten Pakets sowie der möglichen Aktualisierung (Abschnitt 2.11.2, „Versionsnummer“). Die Auswahl in der Baumstruktur erfolgt analog zu vi(m) mittels j und k (oder über die Pfeiltasten) und Enter. Die einzelnen Strukturebenen klappen Sie mit den Tasten Enter, [ und ] auf und zu.

Dabei hinterlegt aptitude die einzelnen Pakete mit verschiedenen Farben, deren Bedeutung Sie Tabelle 6.2, „Farben und deren Bedeutung bei aptitude entnehmen. Das Farbschema können Sie auch nach Gutdünken anpassen, genauer gehen wir darauf in Abschnitt 10.12, „aptitude-Farbschema anpassen“ ein.

Tabelle 6.2. Farben und deren Bedeutung bei aptitude

Farbkombination Bedeutung

schwarzer Hintergrund mit weißer Schrift

das Paket wird nicht verändert

roter Hintergrund mit weißer Schrift

das Paket ist defekt oder kann nicht installiert werden

blauer Hintergrund mit weißer Schrift

das Paket wird aktualisiert

weißer Hintergrund mit schwarzer Schrift

die Paketversion bleibt erhalten, kann jedoch aktualisiert werden

grüner Hintergrund mit schwarzer Schrift

Paket wird installiert

lila Hintergrund mit schwarzer Schrift

Paket wird entfernt („deinstalliert“)


Im unteren Fenster erhalten Sie eine Beschreibung — entweder zur ausgewählten Paketkategorie oder zum jeweiligen Paket. Zwischen den beiden Fensterhälften wechseln Sie mittels der Tab-Taste hin und her. Die Belegung weiterer Tasten entnehmen Sie bitte Tabelle 6.3, „Tasten bei aptitude.

Tabelle 6.3. Tasten bei aptitude

Aktion Tastenbelegung

Hilfe

?

aptitude beenden (Vormerkungen werden gespeichert)

Shift+ q

aptitude abbrechen (alle Vormerkungen gehen verloren)

Ctrl+kbd[C]

Info-Fenster ein- und ausblenden

Shift+ D

Zwischen den Info-Ansichten wechseln

i

Zwischen beiden Fenstern hin- und herwechseln

Tab

In das Menü von aptitude wechseln

Ctrl+ t oder F10

Paketlisten aktualisieren

u

Ausgewähltes Paket auswählen

+

Ausgewähltes Paket entfernen

-


Auch wenn sich APT und aptitude größtenteils sehr ähnlich sind, bestehen eine Reihe von feinen Unterschieden, die erst während der Benutzung der Programme präsent werden. aptitude hat nützliche Erweiterungen, wie z.B. einen interaktiven Abhängigkeitsauflöser (siehe Abbildung 6.4, „package dependency solver in aptitude). Verändern Sie den geplanten Paketbestand, indem Sie beispielsweise ein zusätzliches Paket markieren und somit zur Installation vormerken, werden automatisch die notwendigen Abhängigkeiten aufgelöst und ebenfalls vorgemerkt. Sie sehen somit unmittelbar, welche Pakete im nächsten Schritt noch hinzukommen oder wieder entfernt werden müssen.

Sollte es dabei zu Paketkonflikten kommen, so werden Ihnen vorab verschiedene Lösungsvarianten und deren Auswirkungen auf den Paketbestand zur Auswahl gestellt. Im Gegensatz dazu präsentiert Ihnen APT nur stets einen einzigen Vorschlag zur Aktualisierung.

Aus diesen angebotenen Varianten wählen Sie die Ihnen am besten passende aus. In den letzten beiden Zeilen des Terminals listet aptitude auf, wieviele Varianten es ermittelt hat, mit welchen Tasten Sie zwischen diesen Varianten wechseln (siehe auch Tabelle 6.4, „Tasten zur interaktiven Konfliktlösung bei aptitude) und wie Sie die gewünschte Variante letztendlich auswählen.

Abbildung 6.4. package dependency solver in aptitude

werkzeuge/werkzeuge-zur-paketverwaltung-ueberblick/ncurses-basiert/aptitude-dependency-solver.png

Tabelle 6.4. Tasten zur interaktiven Konfliktlösung bei aptitude

Aktion Tastenbelegung

Vorschläge zur Konfliktlösung anzeigen

e

Nächsten Vorschlag anzeigen

.

Vorherigen Vorschlag anzeigen

,

Ersten Vorschlag anzeigen

<

Letzten Vorschlag anzeigen

>

Teilvorschlag akzeptieren

a

Teilvorschlag ablehnen („reject“)

r

Vorschlag anwenden

!


Darüber hinaus verfügt aptitude über eine Ansicht, in der Sie Pakete nach Debian-Tags (Debtags) (siehe dazu Kapitel 13, Erweiterte Paketklassifikation mit Debtags) sortiert betrachten können. Damit stöbern Sie sehr effizient im Paketbestand. Das ist insbesondere dann interessant, wenn Sie lediglich wissen, nach welcher Funktionalität oder Art von Paket Sie suchen, jedoch den konkreten Paketnamen nicht kennen.

Der ebenfalls im Menü in Abbildung 13.5, „Auswahl des Debtags-Browsers in aptitude (noch) angezeigte Kategoriebrowser gilt als veraltet[17], funktioniert seit einigen Versionen nicht mehr und wird voraussichtlich demnächst ganz entfernt [aptitude-categorical-browser-to-be-removed]. Der oben angerissene Debtags-Browser ist der offizielle, wesentlich aktuellere und besser gepflegte Ersatz dafür.

Im Erweiterungsteil gehen wir darauf ein, was passiert, wenn Sie APT und aptitude miteinander mischen (Kapitel 12, APT und aptitude mischen). Auch der Konfiguration des Programms ist ein eigener Abschnitt gewidmet (siehe „APT und aptitude auf die eigenen Bedürfnisse anpassen“ in Kapitel 10, APT und aptitude auf die eigenen Bedürfnisse anpassen).

6.3.3. Nala

Das Werkzeug Nala [Debian-Paket-nala] ist bislang noch recht unbekannt und versteht sich als Frontend für APT. Ziel ist, eine übersichtlichere Darstellung vom aktuellen Paketbestand sowie bei dessen Änderungen zu erhalten, indem graphische Elemente in die Ausgabe einfließen. Abbildung 6.5, „Entfernen des Paketes xsnow mittels Nala zeigt den Dialog auf der Kommandozeile zur Entfernung des Paketes xsnow.

Abbildung 6.5. Entfernen des Paketes xsnow mittels Nala

werkzeuge/werkzeuge-zur-paketverwaltung-ueberblick/ncurses-basiert/nala.png

Das gesamte Verhalten und die Bedienung von Nala lehnt sich an DNF an - DNF für APT wäre somit eine gute Zusammenfassung. An Schaltern versteht es die Unterkommandos von APT, bspw. install zur Installation von Softwarepaketen, remove zum Löschen sowie purge und remove --purge zum vollständigen Löschen eines Softwarepakets. Mit dem Unterkommando history stöbern Sie in der Historie von Nala, sprich: Sie sehen daraus, welche Paketaktionen bereits vorher durchgeführt wurden.

Nala benutzt dabei nicht die APT-Bibliotheken, sondern stattdessen die Python-apt-API zur Verwaltung der Pakete. Seit dem Frühsommer 2023 mit der Veröffentlichung von Debian 12 bookworm ist Nala in der stabilen Veröffentlichung von Debian GNU/Linux enthalten.



[16] Unter Debian 7 Wheezy ist die Ausgabe derzeit defekt und als Bug #756841 hinterlegt, siehe https://bugs.debian.org/756841

[17] Es handelt sich dabei um eine hart in aptitude verdrahtete und schon sehr lange nicht mehr gepflegte Kategorisierung der Pakete