8.21. Pakete über die Paketbeschreibung finden

Bleibt ihre Recherche über den Paketnamen ohne Erfolg, dehnen Sie ihre Suche am besten auf die gesamte Paketbeschreibung aus. Zur Recherche darin helfen Ihnen die darauf spezialisierten Programme apt-cache aus dem Paket apt [Debian-Paket-apt], aptitude aus dem gleichnamigen Paket sowie grep-available und grep-status (beide aus dem Paket dctrl-tools [Debian-Paket-dctrl-tools]).

8.21.1. Suche mit apt-cache

Das Kommando apt-cache rufen Sie mit dem Unterkommando search und den gewünschten Suchbegriffen als Parameter auf. Es durchsucht daraufhin die Kurz- und Langbeschreibung des Pakets und gibt den Paketnamen samt einem Auszug aus der Paketbeschreibung aus. Die Suche über den Paketnamen besprechen wir ausführlich in „APT und apt-cache.

Der nachfolgende Aufruf demonstriert die Suche zum Stichwort lintian. Das Ergebnis ist eine zeilenweise Auflistung aus dem Paketnamen gefolgt von einem Auszug aus der Kurzbeschreibung zum Paket.

Suche nach verfügbaren Paketen mittels apt-cache search und dem Suchbegriff lintian

$ apt-cache search lintian
debaux - Debian-Hilfsprogramme
dput - Werkzeug für das Hochladen von Debian-Paketen
fixincludes - Repariert Header-Dateien, die nicht ANSI-kompatibel sind
gdebi - Einfaches Programm für Betrachtung und Installation von deb-Dateien - GNOME-GUI
lintian - Debian-Paketprüfung
devscripts - scripts to make the life of a Debian Package maintainer easier
elida - pbuilder mail interface
libconfig-model-dpkg-perl - editor for Dpkg source files with validation
libdebian-package-html-perl - generates HTML from a Debian source/binary package
pkg-perl-tools - collection of tools to aid packaging Perl modules in Debian
rpmlint - RPM package checker
$

Das Suchergebnis grenzen Sie ein, in dem Sie im Aufruf von apt-cache einen oder mehrere Suchbegriffe angeben. Hier sehen Sie obigen Aufruf mit den beiden Suchbegriffen lintian und rpm. Wie Sie sehen, reduziert sich die Liste der Suchtreffer auf zwei Pakete.

Suche nach verfügbaren Paketen mittels apt-cache search und zwei Suchbegriffen. 

$ apt-cache search lintian rpm
debaux - Debian-Hilfsprogramme
rpmlint - RPM package checker
$

Für ein noch ausführlicheres Suchergebnis kommt der Schalter -f (Langform --full) ins Spiel. Damit ist die Ausgabe identisch zum Aufruf apt-cache search show und gibt den vollständigen Datensatz für das Paket aus. Dieser umfaßt den Paketnamen, den Hashwert zum Paket sowie die hinterlegte Paketbeschreibung.

Suche nach verfügbaren Paketen mittels apt-cache search und zwei Suchbegriffen (vollständige Paketbeschreibung). 

$ apt-cache search --full lintian rpm
Package: debaux
Description-md5: fee7fd0fa25d42a9151a2e3b88577a50
Description-de: Debian-Hilfsprogramme
 Dies Paket enthält Perlprogramme und -module für die
 Erstellung und Veröffentlichung von Debian-Paketen.
 .
 debaus-build lädt automatisch APT-Quellen vor dem Erzeugen
 herunter, fügt Patches und zusätzliche Quellen hinzu. Es kann
 die Pakete in einer chroot-Umgebung anlegen, die erzeugten
 Pakete werden lintian geprüft, auf dem lokalen Rechner installiert
 oder konvertiert nach RPM.
 .
 debaux-build besitzt experimentel die Unterstützung für das
 downloaden von Perl-Modulen von CPAN und das Erzeugen
 passender Debian-Pakete.
 .
 debaux-publish lädt die Pakete hoch und führt Skripte zum Erstellen
 der APT-Quellen und Paketdateien auf dem entfernten Rechner aus.
 debaux-publish unterstützt z.Zt. noch nicht die Pool-Struktur.

Package: rpmlint
Description-md5: b8da9a736db7db144d0b4163fc42d180
Description-en: RPM package checker
 rpmlint is a tool for checking common errors in rpm packages.  rpmlint
 can be used to test individual packages before uploading or to check
 an entire distribution.  By default all applicable checks are
 performed but specific checks can be performed by using command line
 parameters.
 .
 rpmlint can check binary rpms (files and installed ones), source rpms,
 and plain specfiles, but all checks do not apply to all argument
 types.  For best check coverage, run rpmlint on source rpms instead of
 plain specfiles, and installed binary rpms instead of uninstalled
 binary rpm files.
 .
 The idea for rpmlint is from the lintian tool of the Debian project.

$

apt-cache bringt bislang keinen Schalter mit, um den Suchbegriff in der Ausgabe farblich hervorzuheben. Hier bleibt Ihnen nur die Erweiterung des Aufrufs mittels grep und dem dazugehörigen Schalter --color.

8.21.2. Suche mit Hilfe von aptitude

Ohne weitere Parameter im Aufruf gleicht aptitude den Suchbegriff nur mit den Paketnamen ab. Für die Suche über die Paketbeschreibung versteht es eine Reihe von Parametern:

~dsuchbegriff (Langform ?description(suchbegriff))
Suche nach dem suchbegriff in der Paketbeschreibung.
?term(suchbegriff)
Volltextsuche nach suchbegriff im Namen und der Beschreibung des Pakets.
?term-prefix(suchbegriff)
Volltextsuche nach Begriffen, die den suchbegriff als Präfix beinhalten. Suche im Namen und der Beschreibung des Pakets.

Das nachfolgende Beispiel sucht nach allen Paketen, in deren Paketbeschreibung der Begriff ‚lintian‘ vorkommt:

Suche in der Paketbeschreibung mittels aptitude

$ aptitude search ~dlintian
p   debaux                      - Debian-Hilfsprogramme
i   devscripts                  - scripts to make the life of a Debian Package maintainer
i A dput                        - Werkzeug für das Hochladen von Debian-Paketen
p   elida                       - pbuilder mail interface
p   fixincludes                 - Repariert Header-Dateien, die nicht ANSI-kompatibel sind
p   gdebi                       - Einfaches Programm für Betrachtung und Installation von
p   libconfig-model-dpkg-perl   - editor for Dpkg source files with validation
p   libdebian-package-html-perl - generates HTML from a Debian source/binary package
i A lintian                     - Debian-Paketprüfung
p   pkg-perl-tools              - collection of tools to aid packaging Perl modules in Deb
p   rpmlint                     - RPM package checker
$

Die anderen beiden Filter liefern eine ähnliche Ausgabe wie oben, berücksichtigen jedoch sowohl den Paketnamen, als auch die Paketbeschreibung.

8.21.3. Suche mit grep-available und grep-status

Die beiden Werkzeuge grep-available und grep-status gehören zum Paket dctrl-tools [Debian-Paket-dctrl-tools]. Mit den Angaben -F Description (Beschreibungsfeld, Langform --field), -i (unabhängig von Groß- und Kleinschreibung, Langform --ignore-case) sowie dem Suchbegriff als Parameter durchstöbert grep-available die gesamte Paketbeschreibung und liefert als Ergebnis den gesamten Datensatz zum gefundenen Paket zurück.

Nachfolgender Aufruf für die Praxis schränkt die Ausgabe noch weiter ein und zeigt Ihnen von allen gefundenen Paketen nur die entsprechenden Paketnamen an. grep filtert dazu aus der Ausgabe die Zeile heraus, in der das Suchwort Package vorkommt. Das abschließende sort-Kommando sorgt darüberhinaus für eine Ausgabe in alphabetisch aufsteigender Abfolge.

Verfügbare Pakete anzeigen, bei denen in der Beschreibung die Zeichenfolge deb enthalten ist. 

$ grep-available -F Description -i deb | grep Package | sort
Package: base-files
Package: base-passwd
Package: debconf
Package: debconf-i18n
Package: debian-archive-keyring
Package: debianutils
Package: dpkg
Package: libapt-inst1.5
Package: libdebconfclient0
Package: tasksel
Package: tasksel-data
$

grep-available findet alle Pakete – unabhängig davon, ob diese auf ihrem System installiert sind, oder nicht. Mit dem nachfolgenden Aufruf erhalten Sie die Liste der installierten Pakete, bei denen in der Beschreibung die Zeichenfolge xpdf enthalten ist. Zum Einsatz kommt hierbei der zusätzliche Schalter -s (Langform --show-field). Darüber wertet grep-status den Paketstatus aus.

Lediglich die installierten Pakete anzeigen, bei denen in der Beschreibung die Zeichenfolge xpdf enthalten ist. 

$ grep-status -F Description -i -s Package xpdf | grep Package | sort
Package: libpoppler46
Package: libpoppler-cpp0
Package: libpoppler-glib8
Package: libpoppler-qt4-4
Package: poppler-utils
Package: xpdf
$

Analog zu grep verfügt grep-status ebenfalls über den hilfreichen Schalter -v (Langversion --invert-match). Bei Bedarf verkehren Sie mit diesem das Suchergebnis in das Gegenteil.