Aus LinuxUser 06/2013

Apt-Get und Aptitude im Einsatz (Seite 2)

Dass zwischen Apt und Aptitude weitere subtile Unterschiede bestehen, verdeutlicht unter anderem das Verhalten beim Entfernen „verwaister“ Pakete. Diese entstehen, wenn der Paketmanager bei einer Deinstallation nicht alle Abhängigkeiten löscht, die nur für das entfernte Paket notwendig waren, aber in keinem Bezug mehr zur weiterhin installierten Software stehen.

Apt-Get weist in einem solchen Fall lediglich darauf hin, dass verwaiste Pakete existieren, während Aptitude diese automatisch auch löscht. Die dazugehörigen Kommandozeilen-Optionen und Einstellungen für die Konfiguration finden Sie in der Tabelle „Automatisches Entfernen“.

Automatisches Entfernen

Funktion Apt-Get Aptitude
Beim Entfernen apt-get --auto-remove Paket aptitude remove Paket
Abhängigkeiten nicht automatisch entfernen apt-get remove Paket aptitude -o Aptitude::Delete-Unused=false remove Paket
Konfigurationsoptionen APT::Get::AutomaticRemove Aptitude::Delete-Unused
Vorgabewert false true

In einem Schritt

Apt-Get bietet die Möglichkeit, die Auswirkungen der beiden Unterkommandos install und remove in deren jeweiliges Gegenteil zu verkehren. Im Aufruf von Apt-Get hängen Sie dazu an die einzelnen Paketnamen ein Plus- oder Minus-Zeichen an. So entfernen Sie mit apt-get install einzelne Pakete, anstatt sie zu installieren. Das erweist sich etwa dann als hilfreich, wenn Sie ein Paket einrichten, das alternative Abhängigkeiten aufweist, von denen Sie eine bestimmte ausschließen möchten.

So benötigt das Paket stumpwm des in Lisp geschriebenen Window-Managers Stump [10] einen Lisp-Interpreter, legt sich dabei aber nicht auf einen bestimmten fest. Daher genügt eines der drei Pakete clisp-module-clx, cl-clx-sbcl oder cmucl-source. Haben Sie keines davon installiert, wählt Apt-Get im Normalfall das erste Paket aus. Wünschen Sie das nicht, wählen Sie es mit dem nachfolgendem Befehl explizit ab. Daraufhin nimmt Apt-Get das zweite aus der Liste:

# apt-get install stumpwm clisp-module-clx

Aptitude bietet in dieser Hinsicht noch wesentlich mehr Möglichkeiten. Einerseits erlaubt es solche Korrekturen auch bei anderen Unterkommandos, wie full-upgrade, safe-upgrade, markauto oder hold. Andererseits kennt es noch wesentlich mehr Aktionen, auf die Sie ebenfalls über „Anhängsel“ an den Namen des Pakets Zugriff haben (siehe Tabelle „Aktionen in Aptitude“).

Aktionen in Aptitude

Zeichen Effekt
+ Paket installieren
+M Paket installieren und als automatisch installiert markieren
- Paket entfernen
_ Paket und Konfigurationen entfernen („purge“)
: Paket beibehalten (also beispielsweise nicht aktualisieren)
= Paket auf „hold“ setzen
&M Paket als automatisch installiert markieren
&m Paket als nicht automatisch installiert markieren
&BD Bau-Abhängigkeiten des Pakets erfüllen

Das Beispiel in Listing 1 demonstriert diese Möglichkeiten ausführlich: Aptitude aktualisiert in einem Aufruf das Paket lintian, installiert dabei gleichzeitig das Paket htop sowie die noch fehlenden Bau-Abhängigkeiten für htop (in diesem Fall libncurses5-dev), entfernt das Paket tasksel samt nicht benötigter Abhängigkeiten, und setzt das Paket ccal auf „automatisch installiert“.

Daraufhin entfernt der Paketmanager Ccal, da kein anderes Paket davon abhängt. Alle weiteren, nicht angegebenen Pakete, bleiben auf dem derzeitigen Stand, auch wenn eine neuere Version bereitsteht: aptitude full-upgrade bearbeitet nur die angegebenen Pakete.

Listing 1

# aptitude full-upgrade lintian htop+ 'htop&BD' tasksel- 'ccal&M'
The following NEW packages will be installed:
  htop libncurses5-dev
The following packages will be UPGRADED:
  lintian
The following packages will be KEPT BACK:
  iceweasel libmozjs10d xulrunner-10.0
The following packages will be REMOVED:
  ccal{a} tasksel tasksel-data{a}
1 packages upgraded, 2 newly installed, 3 to remove and 3 not upgraded.
[...]

Filter und Suchmuster

Aptitude stellt umfangreiche Optionen für die Recherche nach Paketen bereit. Sowohl in der interaktiven Oberfläche als auch auf der Kommandozeile punktet es dabei mit mächtigen Filtern und Suchmustern. Im Curses-Interface erreichen Sie die Eingabemaske für die Suche über [Umschalt]+[**7**] (den Schrägstrich). Im Aufruf auf der Kommandozeile heißt das Unterkommando search gefolgt vom Suchbegriff.

Bei beiden erlaubt Aptitude nicht nur Bestandteile des Paketnamens und reguläre Ausdrücke als Eingabe, sondern auch spezielle Suchmuster. Dazu zählen ~i für alle installierten Pakete, ~M für alle automatisch durch Abhängigkeiten installierten Pakete oder ?description(Suchbegriff) für die Suche in den Beschreibungen der Pakete (Abbildung 2).

Abbildung 2: Aptitude hilft mit Suchmuster und Filter, den riesigen Bestand an Paketen effektiv nach dem Gewünschten zu durchforsten.
Abbildung 2: Aptitude hilft mit Suchmuster und Filter, den riesigen Bestand an Paketen effektiv nach dem Gewünschten zu durchforsten.

Die meisten Suchmuster gibt es in einer Kurz- und Langform. Erstere beginnen mit einer Tilde (~), Letztere mit einem Fragezeichen. Eine Auswahl an Suchmustern zeigt die Tabelle „Aptitude-Suchmuster“. Eine aktuelle, vollständige Liste auf Englisch findet sich online [11] und im Paket aptitude-doc-en. Bislang wurde die Dokumentation noch nicht ins Deutsche übersetzt, liegt aber unter anderem in Französisch, Italienisch und Spanisch vor [12].

Aptitude-Suchmuster

Langform Kurzform Beschreibung
?not(Muster) !Suchmuster Pakete, auf die das Suchmuster nicht zutrifft
?and(Muster1, Muster2) Muster1Muster2 Pakete, auf die beide Suchmuster zutreffen
?or(Muster1, Muster2) Muster1 | Muster2 Pakete, auf die eines der beiden Suchmuster zutrifft
?automatic ~M Pakete, die als automatisch installiert markiert sind
?broken ~b Pakete mit nicht erfüllten Abhängigkeiten
?config-files ~c pakete, die entfernt wurden, von denen aber noch Konfigurationsdateien existieren
?description(Text) ~dText Pakete, deren Beschreibung den Suchtext enthält
?essential ~E Pakete, die als essenziell markiert sind
?garbage ~g Pakete, die zum automatischen Entfernen anstehen
?obsolete ~o Installierte Pakete, die online nicht bereit stehen (lokal / aus dem Archiv entfernt)
?provides(Muster) ~PMuster Pakete, die ein virtuelles Paket bereitstellen, auf welches das Suchmuster zutrifft
?section(Sektion) ~sSektion Pakete, deren Eintrag für die Sektion den Suchtext enthält
?upgradable ~U Pakete, für die eine neuere Version bereit steht
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 06/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: