Aus LinuxUser 04/2013

Apt-get und Aptitude (Teil 1) (Seite 2)

In welcher Reihenfolge Aptitude die Vormerkungen abarbeitet, lässt sich nicht pauschal vorhersagen. Das hängt vor allem von den Abhängigkeiten der Pakete untereinander ab, die es bei den einzelnen Aktionen zu berücksichtigen gilt. Spätere Vormerkungen können frühere allerdings auch wieder revidieren.

Aptitude trägt die erhaltenen Vormerkungen in seiner eigenen Paketdatenbank ein (siehe Kasten „Aptitudes Status-Datenbank“). Pakete, die es zur Erfüllung von Abhängigkeiten vorgemerkt werden, kennzeichnet Aptitude als „automatisch installiert“, angezeigt durch den Buchstaben A in der Benutzeroberfläche. Mittlerweile kann Apt ebenfalls mit dieser Markierung umgehen und setzt sie beim Installieren von Paketen via Apt-get analog. Entdeckt die Paketverwaltung bei einem Aufruf solche als automatisch installiert markierten Pakete, die aber von keinem anderen Paket benötigt werden, so weist es den Benutzer darauf hin. Aptitude hingegen lässt es in den Standard-Einstellungen gar nicht soweit kommen und entfernt die Pakete zusammen mit dem Ausführen der Aktion, die diese obsolet macht.

Aptitudes Status-Datenbank

Aptitude pflegt seine Zusatz-Informationen zu den Paketen in einer textbasierten Datenbank unter /var/lib/aptitude/pkgstates. Ein Eintrag für ein Paket besteht aus fünf Zeilen. Für das Paket debtree sieht er zum Beispiel so aus:

Package: debtree
Unseen: no
State: 1
Dselect-State: 1
Remove-Reason: 0

Dabei enthält Package enthält den Paketnamen. Unseen speichert, ob das Paket in Aptitudes Liste neuer Pakete auftaucht, weil es „noch nicht gesehen“ wurde. State enthält den Paketstatus, wobei 1 für „installiert“ steht, 2 für „beibehalten“, 3 für „nicht installiert“ und 4 für „entfernt (Konfigurationsdateien noch vorhanden)“. Dselect-State zeigt an, ob Vormerkungen vorliegen. Remove-Reason schließlich speichert, falls das Paket automatisch entfernt wurde, den Grund dafür: Entweder wurde es schlicht nicht mehr gebraucht oder es traten Konflikte mit anderen Paketen auf.

Paket-Aktionen mit Aptitude nehmen Sie über die Kommandozeile oder in der interaktiven Textmodus-Oberfläche vor. In letzterer stellt praktisch jedes Markieren eines Paketes zum Installieren ([+]) oder Entfernen ([-]) ein Vormerken dar. Drücken Sie danach [G], gelangen Sie in der Standard-Konfiguration zur Vorschau der Vormerkungen. Drücken Sie nochmals [G], führt Aptitude die vorgemerkten Aktionen auch aus. Die Eingabe von [Q] beendet Aptitude, merkt sich aber die zuvor geplanten Paketaktionen für den nächsten Aufruf. Beenden Sie Aptitude dagegen mit [Strg]+[C], speichert es die Vormerkungen nicht.

Das gleiche Ergebnis erreichen Sie auf der Kommandozeile, indem Sie einem Aptitude-Aufruf die Option --schedule-only hinzufügen. Ein späteres aptitude install ohne weitere Parameter genügt dann, damit der Paketmanager alle vorgemerkten Aktionen ausführt (Listing 1).

Listing 1

# aptitude --schedule-only install htop
# aptitude --schedule-only remove tasksel
# aptitude install
The following NEW packages will be installed:
  htop
The following packages will be REMOVED:
  tasksel tasksel-data{a}
0 packages upgraded, 1 newly installed, 2 to remove and 0 not upgraded.

Oft ist es hilfreich, vor der Installation zu erfahren, welche Vormerkungen bereits getroffen wurden. Am einfachsten gelingt das, indem Sie die Simulation der Aktionen über den Schalter-s beziehungsweise --simulate aktivieren. Der vollständige Aufruf lautet dann aptitude install -s. Als Benutzer der Textmodus-Oberfläche wählen Sie zunächst das Paket mit [+] aus und drücken danach [G] für die Vorschau (Abbildung 2).

Abbildung 2: Aptitude zeigt das zur Aktualisierung ausgewählte Paket <code>mysql-common</code>. Mit einem Druck auf <code>G</code> lösen Sie die Aktualisierung des Pakets aus.
Abbildung 2: Aptitude zeigt das zur Aktualisierung ausgewählte Paket mysql-common. Mit einem Druck auf G lösen Sie die Aktualisierung des Pakets aus.

Um Vormerkungen wieder aufzuheben kennt Aptitude das Unterkommando keep-all, das dafür sorgt, dass der Paketmanager alle Vermerke über geplante Aktionen zurücksetzt. In der deutschsprachigen Version der Textmodus-Oberfläche heißt der entsprechende Eintrag im Aktionen-Menü Nicht abgeschlossene Aktionen abbrechen.

Möchten Sie stattdessen nur ein einziges Paket zurücksetzen, akzeptiert Aptitude das Unterkommando keep, beispielsweise aptitude --schedule-only keep tasksel. In der Textmodus-Oberfläche wählen Sie zunächst das Paket aus, und drücken dann als Pendant [Umschalt]+[.]. Um nur die letzten Vormerkungen zu löschen, drücken Sie in der Textmodus-Oberfläche [Strg]+[U] („undo“).

Bunter Mix

Besonders konfliktträchtig und in der Handhabung verwirrend kann es werden, wenn Sie Apt-get und Aptitude abwechselnd verwenden. Das führt unter Umständen zu unerwarteten Ergebnissen – etwa, wenn Sie ein Paket A mit Aptitude installieren, es mit Apt-get wieder entfernen und dann mit Aptitude ein neues Paket B einrichten.

Im ersten Schritt erfolgt das Vormerken sowie die Installation des Pakets A mittels Aptitude. In Schritt 2 entfernt Apt-get das Paket A wieder – davon bekommt Aptitude aber nichts mit und nimmt an, dass das Paket noch installiert sein muss. Im letzten Schritt installiert Aptitude dann beim Einrichten des angeforderten Pakets B das Paket A gleich noch einmal mit: Paket B haben Sie direkt im Aptitude-Aufruf angegeben, das jetzt „fehlende“ Paket A kommt aus Aptitudes Liste der vorgemerkten Pakete. Für Aptitude ging es irgendwie „verloren“, hat aber gemäß der Merkliste installiert zu sein und wird daher auch eingerichtet.

Andersherum passiert das aber normalerweise nicht: Aptitude entfernt nicht hinterrücks ein mit Apt-get installiertes Paket wieder, die Software trägt es lediglich als „installiert“ in ihrer Liste nach. Dieses Verhalten gehört zur Gruppe von Fehlern rund um die Synchronisierung von Vormerkungen zwischen Aptitude und Dpkg/Dselect [11]. Um solche Schwierigkeiten zu vermeiden, entscheiden Sie sich am Besten für einen der beiden Paketmanager, den Sie dann ausschließlich verwenden.

Dieses Detail gewinnt insbesondere dann an Bedeutung, wenn Software in einem APT-Repository in der Installationsanleitung angibt, sie sei mittels aptitude install Paket zu installieren: Dieser Aufruf richtet potenziell nicht nur die gewünschte Software ein, sondern nimmt im Zweifelsfall auch alle bisher mittels Aptitude vorgemerkten Paket-Aktionen vor – das ist nicht immer im Sinne des Erfinders. Bei einem apt-get install Paket bestünde diese Gefahr nicht.

Ob Sie eher Apt-get oder Aptitude verwenden, hat grundsätzlich nie etwas mit der zu installierenden Software zu tun, sondern bleibt ganz Ihrer Entscheidung überlassen. Unterwerfen Sie sich nicht der persönlichen Präferenz des Autors einer Installationsbeschreibung, sondern wählen Sie stattdessen selbst ihr Lieblingswerkzeug aus.

Vorschau

Im zweiten Teil dieses Artikels erwartet Sie neben Details zu den Standardeinstellungen von Apt und Aptitude ein Überblick zur effektiven Nutzung beider Werkzeuge. Dazu gehören das Aktualisieren, Installieren und Entfernen von Paketen in einem Aufruf sowie Suchmuster und Filter zum Stöbern in den Paketlisten. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 04/2013 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: