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.

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) Muster1 Muster2 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

Diese Muster helfen auch, die Anzeige von Listen in der Textoberfläche und bei den Aufrufen über die Kommandozeile zu filtern. Bei Ersterem stellen Sie einen solchen Filter über [L] ein. Ähnlich wie bei der Suche erscheint ein Eingabefeld, in dem Sie das Suchmuster eintragen. Das Programm gibt nur diejenigen Software-Pakete aus, auf die das gesuchte Muster (in Abbildung 3: o[kc]ular) passt. Damit finden Sie treffsicher jedes Paket, selbst wenn Ihnen die korrekte Schreibweise von dessen Namen entfallen ist.

Abbildung 3: Eine Suche nach dem PDF-Viewer Okular über einen Filter mit regulärem Ausdruck.

Bei den Aufrufen über die Kommandozeile erweisen sich die Suchmuster ebenfalls als hilfreich. Der folgende Befehl markiert alle Pakete als automatisch installiert, deren Namen mit lib beginnt:

# aptitude markauto '~n^lib'

Schließlich sollten im Normalfall nur Software-Bibliotheken ("libraries") installiert sein, die Sie auch verwenden. Einen unangenehmen Nebeneffekt hat der Aufruf jedoch: Dieses Beispiel trifft auf LibreOffice und sowie nahezu alle Pakete mit Header-Dateien zu (der Name solcher Pakete lautet typischerweise libName-dev) und entfernt die Pakete mit. Das ist nicht im Sinne des Erfinders.

Etwas präziser funktioniert es, wenn Sie statt des Paketnamens die Sektion als Suchmuster verwenden. Der folgende Befehl markiert alle Pakete aus den Sektionen libs (Software-Bibliotheken) und oldlibs (veraltete Software-Bibliotheken, Übergangspakete) als "automatisch installiert":

# aptitude markauto '~slibs'

Ein explizites ~soldlibs ist nicht notwendig, da Aptitude das Suchmuster auch als Teil des Sektionsnamens erkennt. Einzelne Ausnahmen (etwa falls eine Bibliothek per Abhängigkeit ins System gelangt ist) geben Sie durch Korrekturen für die Aktion an (siehe Tabelle "Aktionen in Aptitude"). Nach obigem Befehl würde Aptitude alle Bibliotheken entfernen von denen keine anderen Paketen abhängen – mit Ausnahme des Pakets libtclcl1, das als "nicht-automatisch installiert" markiert und damit installiert bleibt.

aptitude markauto '~slibs' 'libtclcl1&m'

Einen weiteren typischen Einsatzzweck stellt das Entfernen der Konfigurations- und Anwendungsdaten (purge) bereits gelöschter (remove), aber noch konfigurierten Paketen dar:

# aptitude purge '~c'

Hier gilt allerdings die selbe Warnung wie für die Option --purge-unused: Bei unbedachtem Einsatz führt diese Aktion zum Verlust von eventuell noch benötigten Daten. So gibt es bei den Paketen für den MySQL-Server in Debian eine Einstellung, die festlegt, ob das System Datenbanken bei einem purge löscht. In jedem Fall empfiehlt sich vor dem Ausführen des Kommandos ein zweiter Blick.

Aptitude erweist sich als deutlich komplexer und bietet wesentlich mehr Möglichkeiten zum Management von Paketen. Dies bringt aber auch Nachteile mit sich. So braucht das Programm zum Starten und Beenden wesentlich mehr Zeit als Apt-Get: Beim Start liest es seine zusätzliche Datenbank für den Status der Pakete ein, beim Beenden speichert es diese wieder auf die Festplatte. Das passiert sogar in Fällen, in denen es nicht notwendig wäre [13].

Fazit

Möchten Sie eine fein abgestufte, aber dennoch effiziente Kontrolle über die von Ihnen genutzten Pakete, bietet das mächtige Aptitude weitaus mehr an Möglichkeiten als Apt-Get. Es setzt allerdings auch etwas mehr Wissen voraus, während Apt-Get zur Not aus dem Kaltstart loslegt. Apt-Get stellt eventuell dann die bessere Wahl dar, wenn Sie potenziellen "Nebenwirkungen" vorgemerkter Aktionen vorbeugen möchten.

Haben Sie Aptitudes Text-Modus-Oberfläche mit ihren vielfältigen Möglichkeiten zur Vorschau und Filterung erst einmal schätzen gelernt, spricht nichts dagegen, vor jedem Lauf kurz aptitude keep-all aufrufen, um alle Vormerkungen zu verwerfen.

Schreiben Sie Installationsanleitungen für ein Debian-Pakete oder verfassen einen Artikel, dann sollten Sie grundsätzlich Apt-Get in allen Beispielen verwenden. Überlassen Sie hier besser dem Anwender die Entscheidung, ob er Apt-Get oder Aptitude nutzen will: Als Autor können Sie mögliche Nebenwirkungen bei der Nutzung von Aptitude nicht vorhersehen. 

Glossar

Backports

Aktualisierte, fehlerbereinigte oder funktional erweiterte Pakete, welche die Entwickler für ein älteres Debian-Release und dessen Entwicklungsstand angepasst haben.

Infos

[1] Workshop Apt und Aptitude, Teil 1: Axel Beckert, Frank Hofmann, "Ungleiche Geschwister", LU  04/2013, S. 90, http://www.linux-community.de/27663

[2] Konfiguration in /etc/apt/apt.conf: Frank Ronneburg "Debian-Anwenderhandbuch", http://debiananwenderhandbuch.de/apt.conf.html

[3] Modulare Konfiguration in /etc/apt/apt.conf.d/: http://wiki.debian.org/AptConf

[4] Manpage zu Run-parts: http://manpages.debian.net/cgi-bin/man.cgi?query=run-parts

[5] Referenz zur Aptitude-Konfigurationsdatei (engl.): http://people.debian.org/~abe/aptitude/en/ch02s05s05.html

[6] Kommandos von Aptitude und Apt-get: http://debian-handbook.info/browse/stable/sect.apt-get.html

[7] Pakete verwalten hinter einem Proxy: http://wiki.itadmins.net/doku.php?id=debian:apt-get_proxy

[8] Apt über einen Proxy betreiben: http://www.marcusmoeller.ch/tutorials/apt-uber-einen-proxyserver-betreiben.html

[9] Ubuntu-Forum: http://askubuntu.com/questions/196059/how-to-modify-settings-in-apt-conf-file-that-no-longer-exists-in-12-04

[10] Stump Window Manager: http://stumpwm.nongnu.org/

[11] Aptitude-Suchmuster-Referenz (engl.): http://people.debian.org/~abe/aptitude/en/ch02s04s05.html

[12] Aptitude-Handbuch: http://people.debian.org/~abe/aptitude/

[13] Antwort von Daniel Hartwig zu Debian-Bug #693144: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=693144#32

[] Die Autoren bedanken sich bei Lars Lingner für seine Anregungen und Kritik im Vorfeld dieses Artikels.

Der Autor

Axel Beckert (http://noone.org/abe/) arbeitet als Linux-Systemadministrator an der ETH Zürich, sitzt im Vorstand der Linux-User-Group Switzerland und ist Mitglied des Debian-Projekts. Er fungiert seit der Neuformierung des Aptitude-Teams als Mentor, Versuchskaninchen und Paketsponsor.

Frank Hofmann (http://www.efho.de/) arbeitet in Berlin als Dienstleister für Satz und Druck. Seit 2008 koordiniert er das Regionaltreffen der Linux-User-Groups aus der Region Berlin-Brandenburg.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Apt-get und Aptitude (Teil 1)
    Die Paketmanager Apt-get und Aptitude gehören zum Standardrepertoire von Debian und dessen Derivaten. Welcher davon eignet sich wofür am besten?
  • Aptitude: Software-Installation unter Debian
    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.
  • Hilfe zur Selbsthilfe: Paketverwaltung
    Moderne Distributionen bieten zusätzlich in der Regel einen komfortablen Paketmanager, um Programme zu verwalten. Mit dem richtigen Know-how kitzeln Sie zusätzlich viele Information aus diesen heraus.
  • Komfortabel Pakete managen mit der Apt-Shell
    Die Apt-Shell bietet eine Bedienoberfläche für viele Tools rund um das ausgefeilte Debian-Paketmanagement. Mit ihr nutzen Sie die vielfältigen Funktionen über ein zentrales Interface.
  • Urgestein
    Schon 1993 schuf Debian mit Dpkg ein solide Basis zur einfachen Paketverwaltung. Deren flexible Methoden und Konzepte bewähren sich bis heute – auch im Debian-Ableger Ubuntu.
Kommentare

Infos zur Publikation

LU 06/2017: System im Griff

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Anfänger Frage
Klaus Müller, 24.05.2017 14:25, 1 Antworten
Hallo erstmal. Habe von linux nicht so viel erfahrung müsste aber mal ne doofe frage stellen. A...
Knoppix-Live-CD (8.0 LU-Edition) im Uefiboot?
Thomas Weiss, 26.04.2017 20:38, 2 Antworten
Hallo, Da mein Rechner unter Windows 8.1/64Bit ein Soundproblem hat und ich abklären wollte, o...
Grub2 reparieren
Brain Stuff, 26.04.2017 02:04, 5 Antworten
Ein Windows Update hat mir Grub zerschossen ... der Computer startet nicht mehr mit Grub, sondern...
Linux open suse 2,8
Wolfgang Gerhard Zeidler, 18.04.2017 09:17, 2 Antworten
Hallo.bitte um Hilfe bei. Code fuer den Rescue-login open suse2.8 Mfg Yvo
grep und sed , gleicher Regulärer Ausdruck , sed mit falschem Ergebnis.
Josef Federl, 15.04.2017 00:23, 1 Antworten
Daten: dlfkjgkldgjldfgl55.55klsdjfl jfjfjfj8.22fdgddfg {"id":"1","name":"Phase L1","unit":"A",...