// Datei: ./werkzeuge/paketoperationen/pakete-ueber-die-paketbeschreibung-finden.adoc

// Baustelle: Rohtext

[[pakete-ueber-die-paketbeschreibung-finden]]

=== Pakete über die Paketbeschreibung finden ===

// Stichworte für den Index
(((Paketsuche, über die Paketbeschreibung)))
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>>).

[[pakete-ueber-die-paketbeschreibung-finden-apt-cache]]

==== Suche mit `apt-cache` ====

// Stichworte für den Index
(((apt-cache, search)))
(((Debianpaket, apt)))
(((Paketsuche, mittels APT)))
(((Paketsuche, mittels apt-cache)))
(((Paketsuche, über die Paketbeschreibung)))

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
<<pakete-ueber-den-Paketnamen-finden-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
$
----

// Stichworte für den Index
(((apt-cache, search -f)))
(((apt-cache, search --full)))
(((apt-cache, show)))
(((Debianpaket, apt)))
(((Paketsuche, über die Paketbeschreibung)))

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`.

[[pakete-ueber-die-paketbeschreibung-finden-aptitude]]

==== Suche mit Hilfe von `aptitude` ====

// Stichworte für den Index
(((aptitude, search)))
(((Debianpaket, aptitude)))
(((Paketsuche, über die Paketbeschreibung)))

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.

[[pakete-ueber-die-paketbeschreibung-finden-grep-available]]

==== Suche mit `grep-available` und `grep-status` ====

// Stichworte für den Index
(((Debianpaket, dctrl-tools)))
(((grep-available)))
(((grep-available, -F)))
(((grep-available, --field)))
(((grep-available, -i)))
(((grep-available, --ignore-case)))
(((grep-status)))
(((Paketsuche, mittels grep-available)))
(((Paketsuche, mittels grep-status)))
(((Paketsuche, über die Paketbeschreibung)))
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
$
----

// Stichworte für den Index
(((grep-status, -F)))
(((grep-status, -s)))
(((grep-status, --show-field)))
`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
$
----

// Stichworte für den Index
(((grep-status, -v)))
(((grep-status, --invert-match)))
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.

// Datei (Ende): ./werkzeuge/paketoperationen/pakete-ueber-die-paketbeschreibung-finden.adoc
