Mit Format Strings legen Sie die Ausgabe anhand von vorgegebenen
Platzhaltern fest. Sie ähneln der Art und Weise, wie sie in der
printf()
-Funktion in der Programmiersprache C respektive der
print()
-Funktion in Python üblich sind. Eine ausführliche Beschreibung
der Platzhalter finden Sie im aptitude
-Handbuch unter Customizing the
package list [aptitude-dokumentation-package-list].
Tabelle 10.1, „Format Strings in aptitude
“ gibt Ihnen eine Übersicht zu den
verfügbaren Platzhaltern. Diese Platzhalter helfen Ihnen in Kombination
mit der Suche nach Paketen und bei der Gestaltung der Ausgabe. Sie
bestimmen damit, welche Informationen aptitude
spaltenweise zu einem
Paket darstellt.
Tabelle 10.1. Format Strings in aptitude
Platzhalter | Bedeutung |
---|---|
| das Flag für die Aktion des Pakets (Action Flag) |
| die ausführlichere Beschreibung des Flags der Aktion |
| die Anzahl der kaputten Pakete (Broken Packages) |
| der aktuelle Paketstatus (Current State Flag) |
| eine ausführlichere Beschreibung des aktuellen Paketstatus |
| die kurze Paketbeschreibung (Description) |
| die Größe der Paketdatei |
| der Name des Source-Pakets |
| der Name des Rechners, auf dem aptitude gerade ausgeführt wird (Hostname) |
| benennt die höchste Priorität, die einer Paketversion zugewiesen wurde |
| die (geschätzte) Installationsgröße (Installed Size) |
| der Name des Paketmaintainers (Maintainer) |
| gesetzt, falls das Paket automatisch installiert wurde (Automatic Flag) |
| gibt die Programmversion von aptitude aus |
| gibt den Namen des Programms aus, i.d.R aptitude |
| gibt eine Schätzung der Datenmenge zurück, die vom Repository bezogen wird |
| der Paketname (Package Name) |
| die Paketpriorität (Priority) |
| gibt die geschätzte Anzahl Pakete an, die von diesem Paket abhängen (Reverse Depends Count) |
| eine Abkürzung für die Priorität des Paketes (Abbreviated Priority) |
| der Bereich, in den das Paket eingeordnet ist (Section) |
| der Vertrauensstatus des Paketes; ist |
| der Name des Archivs, aus dem das Paket stammt |
| gibt einen |
| falls die anstehenden Aktionen die Größe des verfügbaren Speicherplatzes auf dem Datenträger verändern, gibt dieser Platz eine entsprechende Mitteilung aus |
| die aktuell installierte Version des Pakets, falls installiert (Version) |
| gibt die Paketversion aus, die installiert würde, falls die Aktion Paket installieren ausgeführt wird (Candidate Version) |
| die Größe des Speicherplatzes, der zusätzlich benutzt oder freigegeben wird, wenn das Paket installiert, entfernt oder aktualisiert wird (Size Change) |
Die Voreinstellung von aptitude
beinhaltet die fünf Platzhalter %c
,
%a
, %M
, %p%
und %d
. Es umfasst somit die einzelnen Spalten mit
dem Paketstatus, der Aktion, das Automatic Flag, dem Paketnamen und
der Paketbeschreibung.
Möchten Sie eine andere Ausgabe erhalten, benutzen Sie im Aufruf den
Schalter -F
(Langform --display-format
) gefolgt von einem String mit
den entsprechenden Platzhaltern. Das nachfolgende Beispiel listet alle
verfügbaren Pakete samt deren Installationsstatus (%c
) auf, in dessen
Paketname die Zeichenkette asciidoc' enthalten ist (
%p`). Zwischen dem
Paketstatus und dem Paketnamen wird lediglich ein Leerzeichen eingefügt.
Individuelle Gestaltung des Ausgabeformats von aptitude
bei der Suche nach den verfügbaren Paketen mit asciidoc im Namen.
$ aptitude search -F '%c %p' asciidoc i asciidoc v asciidoc:i386 i asciidoctor i asciidoctor-doc $
Die Format Strings erlaubt ebenfalls zusätzliche Trennzeichen und
dezimale Angaben vor einem Platzhalter. Damit legen Sie die weitere
Gestaltung der Ausgabe und die jeweilige Spaltenbreite fest. Das
nachfolgende Beispiel legt drei Spalten fest — den Installationsstatus
(%c
), die Versionsnummer, falls das Paket installiert ist (%v
) sowie
den Paketnamen (%p
). Alle drei Spalten sind jeweils durch einen
senkrechten Strich voneinander getrennt. Die Angabe %20v
besimmt
als feste Spaltenbreite 20 Zeichen, die anderen Spalten bleiben in der
Größe variabel.
Installationsstatus, installierte Version und Paketname mit fester Breite.
$ aptitude search -F '%c | %20v | %p' asciidoc i | 8.6.9-3 | asciidoc v | <keine> | asciidoc:i386 i | 1.5.4-1~bpo8+1 | asciidoctor i | 0.1.4-3 | asciidoctor-doc $
In der Praxis ist es oft so, dass weitere Schalter im Aufruf miteinander
zu kombinieren sind. Das nachfolgende Beispiel listet nur den Namen aller
verfügbaren Pakete auf, die nicht als Abhängigkeiten installiert wurden.
Dabei bewirkt die Angabe '~i !~M'
, dass nur die installierten Pakete
berücksichtigt werden (Angabe '~i'
), und '!~M'
, dass nur die
einbezogen werden, bei denen das Automatic Flag nicht gesetzt ist (das
!
bewirkt eine Negation).
Das Ergebnis ist zunächst erstmal der komplette, übliche Ausgabestring
aus Paketstatus, der Aktion, dem Automatic Flag, dem Paketnamen und
der kurzen Paketbeschreibung. Um das noch auf den Paketnamen zu
reduzieren, kommt der Format String %p
ins Spiel.
Lediglich nicht automatisch installierte Pakete auflisten.
$ aptitude search '~i !~M' -F '%p' abiword abs-guide ack-grep acl acpi acpi-support-base acpid acpitool adduser adequate ... $
Die obige Liste beinhaltet auch alle essentiellen Pakete (siehe
Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“). Diese filtern Sie über die
zusätzliche Angabe '!~E'
heraus. Damit ändert sich ihr Aufruf wie
folgt:
Nicht automatisch installierte und nicht essentielle Pakete auflisten.
$ aptitude search '~i !~M' -F '%p' abiword abs-guide ack-grep ... $
Bitte beachten Sie, dass aptitude
nur die Pakete berücksichtigt, die
auch das Automatic Flag tragen. Nicht alle Distributionen sind da
konsequent. Zum Beispiel ist Raspberry Pi OS dafür bekannt, die
Markierung kaum zu benutzen. Obiger Aufruf auf einem Raspberry Pi
liefert wohl deswegen auch viele C-Bibliotheken im Ergebnis mit, die
tatsächlicht nicht gebraucht werden.
Geht es Ihnen jedoch darum, lediglich die Namen der Pakete auszugeben,
die den Begriff asciidoc im Namen tragen und auch installiert sind,
hilft aus unserer Sicht nur die Kombination aus asciidoc
und grep
wie folgt weiter:
Alle installierten Pakete auflisten, die asciidoc
im Namen tragen.
$ aptitude search '~i' -F '%p' | grep asciidoc asciidoc asciidoctor asciidoctor-doc $
Arbeiten Sie mit Repositorys vom Fremdanbietern, hängt die
Zuverlässigkeit der Pakete vom Fremdanbieter ab. Mit dem nachfolgenden
Aufruf — einer Kombination aus aptitude
und egrep
— finden Sie
alle installierten Pakete, die aus nicht-vertrauenswürdigen Quellen
stammen. Die Angabe %S
am Beginn des Format Strings veranlasst
aptitude
, ein U
zu produzieren, sollte der entsprechende Fall
eintreten. Der angeflanschte Aufruf von egrep
benutzt einen regulären
Ausdruck, um für diejenigen Zeilen einen Treffer zu landen, die mit
einem großen U
beginnen. Im Beispiel ist es das ausgedachte Paket
libblafaselsonstwas.
Pakete aus nicht-vertrauenswürdiger Quelle herausfischen.
$ aptitude search '~i' -F '%S %p' | egrep "^U U libblafaselsonstwas $