APT kann Ihnen ausgeben, welche Pakete es überhaupt kennt. Dazu verfügt
das Werkzeug apt-cache
(aber nicht apt
) über das Unterkommando
pkgnames
. Die Ausgabe, die Sie nach dessen Aufruf erhalten, hängt
von den von Ihnen genutzten Paketquellen und den darüber verfügbaren
Paketen ab.
Die nachfolgende Ausgabe listet die Pakete zusätzlich alphabetisch
aufsteigend sortiert und seitenweise auf. Im Aufruf kommen dazu die
beiden UNIX-Kommandos sort
und more
zum Einsatz.
Seitenweise und alphabetisch sortierte Ausgabe der Paketnamen, die APT kennt.
$ apt-cache pkgnames | sort | more 0ad 0ad-data 0ad-dbg 2ping 2vcard 3270-common 389-console 3dchess ... $
Kennen Sie jedoch nur ein Fragment eines Paketnamens, gibt es verschiedene Wege.
Der gebräuchliste Weg war für lange Zeit apt-cache search -n
Suchmuster. Seit APT 1.0 kann man sich aber das -cache
sparen und
apt search -n
Suchmuster verwenden. Allerdings sieht die Ausgabe
jeweils unterschiedlich aus, u.a. sind bei apt
die Paketnamen noch
in grün hervogehoben und die Ausgabe ist mehrzeilig pro Paket.
In beiden Fällen schränkt der Schalter -n
die Suche auf Paketnamen
inklusive bereitgestellter Paketnamen ein.
Will man aptitude
verwenden, so braucht muss man statt dem -n
an
das Suchmuster selbst ~n
vorne dranhängen und quoten, damit es von
der Kommandozeilen-Shell nicht als persönliches Verzeichnis eines
Nutzers interpretiert wurd: aptitude search '~n …'
(Das Leerzeichen
nach ~n
ist optional. Im Beispiel unten wurde es weggelassen.)
Aptitude zeigt dann allerdings bei Systemen mit mehr als einer
installierten Architektur jedes Paket einmal pro Architektur an.
Suche nach dem Muster lynx
in Paketnamen.
$ apt-cache search -n lynx lynx - Klassischer Textmodus-Webbrowser (nicht graphisch) lynx-common - Gemeinsame Dateien für Lynx lynx-dbgsym - debug symbols for lynx $ apt search -n lynx Sortierung# Fertig Volltextsuche# Fertig lynx/bullseye,now 2.9.0dev.6-1 amd64 [Installiert,automatisch] Klassischer Textmodus-Webbrowser (nicht graphisch) lynx-common/bullseye,now 2.9.0dev.6-1 all [Installiert,automatisch] Gemeinsame Dateien für Lynx lynx-dbgsym/bullseye-debug,now 2.9.0dev.6-1 amd64 [installiert] debug symbols for lynx $ aptitude search '~nlynx' i A lynx - Klassischer Textmodus-Webbrowser (nicht graphisch) p lynx:i386 - Klassischer Textmodus-Webbrowser (nicht graphisch) i A lynx-common - Gemeinsame Dateien für Lynx v lynx-common:i386 - Gemeinsame Dateien für Lynx i lynx-dbgsym - debug symbols for lynx p lynx-dbgsym:i386 - debug symbols for lynx $
Weiß man den Anfang des Paketnamens, aber den Rest nicht, kann man
auch noch apt-cache pkgnames
mit Parameter verwenden oder aber eine
der o.g. Suchen mit dem Anker ^
zum Markieren des Anfangs der
Zeichenkette:
Suche nach dem Muster links
am Anfang des Paketnamens.
$ apt-cache pkgnames links links2 links links-dbgsym links2-dbgsym $ apt-cache search -n '^links' links - Textmodus-Webbrowser links2 - Webbrowser für den grafischen und den Textmodus links-dbgsym - debug symbols for links links2-dbgsym - debug symbols for links2 $ apt search -n '^links' Sortierung# Fertig Volltextsuche# Fertig links/bullseye,now 2.21-1+b1 amd64 [Installiert,automatisch] Textmodus-Webbrowser links-dbgsym/bullseye-debug,now 2.21-1+b1 amd64 [installiert] debug symbols for links links2/bullseye,now 2.21-1+b1 amd64 [Installiert,automatisch] Webbrowser für den grafischen und den Textmodus links2-dbgsym/bullseye,now 2.21-1+b1 amd64 [installiert] debug symbols for links2 $ aptitude search '~n^links' i A links - Textmodus-Webbrowser p links:i386 - Textmodus-Webbrowser i links-dbgsym - debug symbols for links p links-dbgsym:i386 - debug symbols for links i A links2 - Webbrowser für den grafischen und den Textmodus p links2:i386 - Webbrowser für den grafischen und den Textmodus i links2-dbgsym - debug symbols for links2 p links2-dbgsym:i386 - debug symbols for links2 $
Will man nur nach dem Ende eines Paketnamens suchen, so kommt man um
die Verwendung des Zeichenketten-Ende-Ankers $
nicht umhin. Auch
dieser sollte wieder gequotet werden, um in der Kommandozeilen-Shell
nicht als Beginn einer Variablen angesehen zu werden.
Suche nach dem Muster mlinks
am Ende eines Paketnamens.
$ apt-cache pkgnames | egrep 'mlinks$' symlinks python3-sphinx-paramlinks $ apt-cache search -n 'mlinks$' python3-sphinx-paramlinks - Sphinx extension to make param links linkable (Python 3 version) symlinks - Scannen und Ändern symbolischer Links $ apt search -n 'mlinks$' Sortierung# Fertig Volltextsuche# Fertig python3-sphinx-paramlinks/unstable,unstable 0.5.0-1 all Sphinx extension to make param links linkable (Python 3 version) symlinks/unstable,testing,now 1.4-4 amd64 [Installiert,automatisch] Scannen und Ändern symbolischer Links $ aptitude search '~n mlinks$' p python3-sphinx-paramlinks - Sphinx extension to make param links linkable (Python i A symlinks - Scannen und Ändern symbolischer Links p symlinks:i386 - Scannen und Ändern symbolischer Links $
Daß eine Suche nach "links" nicht nur am Anfang oder Ende des Paketnamens zu wesentlich mehr Treffern führt, sei dem Leser als Übung überlassen.
Will man zwingend nur die Paketnamen sehen, gibt es ebenfalls mehrere Möglichkeiten:
apt-cache
mittels awk
, cut
oder sed
nach
dem ersten Leerzeichen abschneiden.
apt-cache pkgnames
mittels grep
o.ä. durchsuchen.
dglob
aus dem Paket debian-goodies
[Debian-Paket-debian-goodies] mit der Option -a
und einem Muster verwenden.
Da dglob
einiges anders macht als in den o.g. Paketen, schauen wir
es uns hier getrennt an.
Das Werkzeug dglob
setzt auf grep-aptavail
und grep-dctrl
auf um
die von APT heruntergeladenen Paketlisten zu durchsuchen. Im
Gegensatz zu apt
, apt-cache
und aptitude
arbeitet es nicht mit
regulären Ausdrücken sondern mit Platzhaltern
(engl. "wildcards"). Dies ist ähnlich zu dpkg -l
, allerdings sind
Platzhalter für beliebige Zeichenketten an Anfang und Ende des
Suchmusters bei dglob
implizit.
Ebenfalls áhnlich zu dpkg -l
listet dglob ohne weitere Schalter nur
installierte Pakete auf. Mit dem Schalter `-a
ändern Sie seine
Verhaltensweise dahingehend, daß es alle bekannten Paketen in Erwägung
zieht — unabhängig davon, ob diese jeweils auf Ihrem System
installiert sind oder nicht. Ohne die Option beschränkt sich dglob
nur auf die bereits installierten Pakete.
Suche nach elinks
mit dglob
, dglob -a
und dpkg -l
im Vergleich.
$ dpkg -l elinks Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten | Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/ Halb installiert/Trigger erWartet/Trigger anhängig |/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht) ||/ Name Version Architektur Beschreibung +++-==============-============-============-================================= ii elinks 0.13.2-1+b1 amd64 advanced text-mode WWW browser $ dpkg -l '*elinks*' Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten | Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/ Halb installiert/Trigger erWartet/Trigger anhängig |/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht) ||/ Name Version Architektur Beschreibung +++-==============-============-============-=========================================== ii elinks 0.13.2-1+b1 amd64 advanced text-mode WWW browser ii elinks-data 0.13.2-1 all advanced text-mode WWW browser - data files un elinks-doc <keine> <keine> (keine Beschreibung vorhanden) un elinks-lite <keine> <keine> (keine Beschreibung vorhanden) $ dglob elinks elinks:amd64 elinks-data:all $ dglob -a elinks elinks:amd64 elinks-data:all elinks-doc:all elinks:i386 elinks-dbgsym:amd64 elinks-dbgsym:i386 $