Mit der großen und immer weiter wachsenden Menge von Software in Debian entsteht ein Paradoxon: Debian hat normalerweise ein Werkzeug für fast jede Aufgabe, aber es kann sehr schwer sein, es unter der Unzahl anderer Pakete zu finden. Der Mangel an geeigneten Wegen das richtige Werkzeug zu suchen (und zu finden) war lange Zeit ein Problem. Glücklicherweise ist dieses Problem mittlerweile fast vollständig gelöst.
The most trivial search possible is looking up an exact package name. If apt show package
returns a result, then the package exists. Unfortunately, this requires knowing or even guessing the package name, which isn't always possible.
Eine etwas erfolgreicheres Suchschema ist die Volltextsuche über die Paketnamen, wenn auch immer noch stark beschränkt. Im Allgemeinen lassen sich Resultate durch die Suche in den Paketbeschreibungen erzielen: Da jedes Paket über eine mehr oder weniger detailierte Beschreibung verfügt, wird eine Schlagwortsuche in diesen Beschreibungen oftmals erfolgreich sein. apt-cache
und axi-cache
sind das Mittel der Wahl für diese Art der Suche; beispielsweise liefert apt-cache search video
eine Liste aller Pakete deren Name oder Beschreibung das Schlagwort "video" enthält.
Komplexere Suchen erfordern ein mächtigeres Werkzeug wie aptitude
. aptitude
erlaubt es Ihnen, nach logischen Ausdrücken, basierend auf den Metadatenfeldern der Pakete zu suchen. Beispielsweise sucht der folgende Befehl nach Paketen, deren Name kino
enthält, deren Beschreibung video
enthält und deren Betreuernamen paul
enthält:
$ aptitude search kino~dvideo~mpaul
p kino - Non-linear editor for Digital Video data
$ aptitude show kino
Package: kino
State: not installed
Version: 1.3.4-2.1+b1
Priority: extra
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 8,472 k
Depends: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0 (>=
0.5.3), libavcodec56 (>= 6:11~beta1) | libavcodec-extra-56 (>=
6:11~beta1), libavformat56 (>= 6:11~beta1), libavutil54 (>=
6:11~beta1), libc6 (>= 2.14), libcairo2 (>= 1.2.4), libdv4,
libfontconfig1 (>= 2.11), libfreetype6 (>= 2.2.1), libgcc1 (>=
1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglade2-0 (>= 1:2.6.4-2~),
libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>= 2.24.0), libice6 (>=
1:1.0.0), libiec61883-0 (>= 1.2.0), libpango-1.0-0 (>= 1.14.0),
libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0),
libquicktime2 (>= 2:1.2.2), libraw1394-11, libsamplerate0 (>= 0.1.7),
libsm6, libstdc++6 (>= 4.9), libswscale3 (>= 6:11~beta1), libx11-6,
libxext6, libxml2 (>= 2.7.4), libxv1, zlib1g (>= 1:1.1.4)
Recommends: ffmpeg, curl
Suggests: udev | hotplug, vorbis-tools, sox, mjpegtools, lame, ffmpeg2theora
Conflicts: kino-dvtitler, kino-timfx, kinoplus
Replaces: kino-dvtitler, kino-timfx, kinoplus
Provides: kino-dvtitler, kino-timfx, kinoplus
Description: Non-linear editor for Digital Video data
Kino allows you to record, create, edit, and play movies recorded with DV
camcorders. This program uses many keyboard commands for fast navigating and
editing inside the movie.
The kino-timfx, kino-dvtitler and kinoplus sets of plugins, formerly
distributed as separate packages, are now provided with Kino.
Homepage: http://www.kinodv.org/
Tags: field::arts, hardware::camera, implemented-in::c, implemented-in::c++,
interface::x11, role::program, scope::application, suite::gnome,
uitoolkit::gtk, use::editing, use::learning, works-with::video,
x11::application
Die Suche liefert nur ein Ergebnis, kino, auf das alle drei Kriterien zutreffen.
Selbst die Mehrfachkriterien Suchen sind unhandlich, was erklärt, warum sie seltener genutzt werden, als sie eigentlich genutzt werden könnten. Aus diesem Grund wurde ein neues Markierungssystem entwickelt, das einen neuen Suchansatz zur Verfügung stellt. Pakete erhalten Markierungen aus einer thematischen Gliederung über verschiedene Anwendungsbereiche, bekannt als "Facettenklassifikation". Im Falle von kino wie oben, besagen die Markierungen, dass Kino eine Gnome-basierte Software ist, die Videodaten verarbeitet und deren Hauptzweck die Bearbeitung ist.
Das Durchsuchen der Gliederung kann bei der Suche nach dem Paket, das bekannten Anforderungen entspricht, helfen. Selbst wenn sie eine moderate Anzahl an Treffern liefert, kann der Rest der Suche manuell fortgesetzt werden. Dazu können Sie das
~G
Suchmuster in
aptitude
nutzen. Es ist aber wahrscheinlich einfacher, zu der Site zu navigieren, wo die Markierungen verwaltet werden:
Die Schlagworte works-with::video
and use::editing
liefern eine handvoll Pakete, unter anderem die Video-Bearbeitungsprogramme kino und pitivi. Dieses Klassifizierungssystem wird immer stärker genutzt werden und die Paket-Verantwortlichen werden nach und nach effiziente Suchen auf dieser Grundlage zur Verfügung stellen.
Zusammenfassend wird das geeignetste Werkzeug für die Aufgabe durch die Komplexität der durchzuführenden Suche bestimmt:
apt-cache
sucht nur in Paketnamen und Beschreibungen, was sehr bequem ist, wenn Sie nach bestimmten Paketen suchen, auf die wenige Schlagworte passen;
wenn die Suche ebenfalls Beziehungen zwischen Paketen und andere Metadaten wie den Betreuernamen umfasst, wird synaptic
nützlicher sein;
wenn eine Markierungs-basierte Suche nötig ist, ist packagesearch
ein gutes Werkzeug: eine grafische Oberfläche zur Suche verfügbarer Pakete neben verschiedenen anderen Kriterien (inklusive der Namen der enthaltenen Dateien). Auf der Kommandozeile erledigt axi-cache
diese Aufgabe.
schlussendlich, wenn die Suche komplexe Ausdrücke mit logischen Operatoren erfordert, wird aptitude
mit seiner etwas obskuren aber mächtigen Suchmuster-Syntax das Mittel der Wahl sein; es funktioniert auf der Kommandozeile ebenso wie im interaktiven Modus.