Aus LinuxUser 06/2012

Pakete zielgenau finden mit Debtags (Seite 2)

Abbildung 1: Die Ausgabe des Paketstatus mittels Dpkg.
Abbildung 1: Die Ausgabe des Paketstatus mittels Dpkg.

Als entsprechendes Suchmuster für Apt-cache und Aptitude dient ein regulärer Ausdruck, der mit einem ^ beginnt. Es findet somit alle Zeichenketten, die mit der Folge openttd beginnen. Die Ausgabe von Apt-cache und Aptitude fällt ähnlich ausführlich aus wie jene von Dpkg und listet Zeile für Zeile nur Pakete mit deren Namen und Kurzbeschreibung auf (Listing 3). Die Basis bilden die Paketlisten, die Apt aufgrund der Einträge in /etc/apt/sources.list von den darin angegebenen Paketquellen bezogen und danach unter /var/lib/apt/lists/ gespeichert hat.

Listing 3

$ aptitude search '^openttd'
i   openttd         - Erweiterte Neuumsetzung von »Transport Tycoon Deluxe
i A openttd-data    - Gemeinsame Datendateien für das Spiel OpenTTD
i A openttd-opengfx - Freier Grafiksatz für das Spiel OpenTTD
i A openttd-openmsx - Freie Musiksammlung für das Spiel OpenTTD
p   openttd-opensfx - a sound set for use with the OpenTTD game

Die Ausgabe von Aptitude zeigt zusätzlich den jeweiligen Status des Paketes an (siehe auch Kasten „Paketstatus“). In Listing 4 sind vier der fünf Pakete bereits auf dem System installiert (i), drei davon automatisch (A). p bezeichnet ein in der Paketliste verfügbares, aber noch nicht installiertes Paket. In der Ausgabe von Dpkg in Wie Sie in Abbildung 1 sehen, kennzeichnet Dpkg das fragliche Paket openttd-opensfx dagegen mit u für „unbekannt“ und n für „nicht installiert“.

Paketstatus

Falls Sie den exakten Namen des fraglichen Pakets kennen, finden Sie dessen Status auch mithilfe von Dpkg und Grep heraus: Die Dpkg-Option -s Paketname liefert Paketinformationen aus der control-Datei des Pakets, ein nachfolgendes Grep filtert die Zeile mit dem Installationsstatus heraus:

$ dpkg -s aptitude | grep -i status
Status: install ok installed

In diesem Fall zeigt die Überprüfung für das Paket aptitude, dass es bereits vollständig installiert ist.

Das Debtags-Projekt

Auf der Debconf – der jährlich stattfindenden Debian-Entwicklerkonferenz [4] – 2005 in Helsinki veröffentlichte der italienische Entwickler Enrico Zini seine Überlegungen, wie man die Debian-Pakete übersichtlicher ordnen könnte [5]. Sein Konzept ermöglicht, zahlreiche Aspekte eines Paketes zu erfassen, was verschiedenste Sichtweisen auf die Software und die zur Suche verwendeten Begrifflichkeiten abdeckt und damit eine themen- oder aspektbasierte Klassifikation und Suche zulässt. Die Suchanfragen bestehen aus nahezu umgangssprachlichen Begriffen und ergänzen die Auswahl über die bisher verwendeten Debian-Sections und Paketnamen.

Enrico Zini betreut heute als Maintainer das zugehörige Debian-Paket debtags [6]. Debtags steht als Abkürzung für „Debian Tags“ und beinhaltet eine Zusammenstellung von abgestimmten Kategorien und Begriffen. Das Vorgehen lässt sich in etwa mit der Verschlagwortung eines Buch- oder Dokumentbestands vergleichen, zu dessen Kategorisierung einheitliche Begriffe für gleiche Sachverhalte dienen.

Das dabei genutzte Schema kennt man in der Wissenschaft unter dem Begriff Facettenklassifikation („faceted classification“, [7]). Es beschreibt ein Objekt durch mehrere Begriffe, wobei jeder davon einen spezifischen Aspekt oder eine Eigenschaft des Objekts repräsentiert. Diese Begriff bezeichnet man auch als Tags und das Verfahren folglich als Tagging.

Die Menge der Tags für Debian-Pakete entwickelt sich stetig weiter, da einerseits mehr und mehr Pakete klassifiziert werden und andererseits weitere, bislang fehlende Tags durch die Mitwirkung der Debian-Anwender hinzukommen. Die derzeit gültigen Tags finden Sie in einer Liste auf der Debtags-Website [8]. Die für ein Debian-Paket vergebenen Tags zeigt folgender Befehl an:

$ debtags show Paketname

Dabei führt debtags die Paketinformationen aus der control-Datei mit den Begriffen aus der Debtags-Datenbank zusammen. Die zusätzliche Zeile in der Ausgabe von Debtags filtern Sie mit einem Grep-Aufruf über eine Pipe heraus. Listing 4 zeigt die aktuelle Klassifikation für den PDF-Betrachter Xpdf.

Listing 4

$ debtags show xpdf | grep -i tag
Tag: implemented-in::c++, interface::x11, role::program, scope::application, uitoolkit::motif, use::viewing, works-with-format::pdf, works-with::text, x11::application

Die Angaben kennzeichnen Xpdf als X11-Programm (x11::application, interface::x11), das zu den Anwendungen (role::program, scope::application) zählt, genauer gesagt zu den Dokumentbetrachtern für PDF und Text (use::viewing, works-with-format::pdf, works-with::text). Des weiteren kann man erkennen, dass Xpdf für die Bedienoberfläche das Motif-Framework (uitoolkit::motif) verwendet und in der Programmiersprache C++ (implemented-in::c++) entwickelt wurde.

Um nun beispielsweise herauszufinden, welche X11-tauglichen Spiele Sie einrichten könnten, greifen Sie zur Debtags-Option search. Sie übergeben ihr eine Tag-Liste und erhalten eine Übersicht aller Debian-Pakete, die bislang in den entsprechenden Kategorien einsortiert sind – im Beispiel aus Listing 5 in game::simulation und interface::x11.

Listing 5

$ debtags search "game::simulation && interface::x11"
billard-gl - 3D billiards game
cultivation - game about the interactions within a gardening community
flightgear - Flight Gear Flight Simulator
foobillard - a 3D billiards game using OpenGL
fretsonfire-game - game of musical skill and fast fingers - Game files
gtkpool - simple pool billiard game written with GTK+
libopenscenegraph-dev - 3D scene graph, development files
lincity-ng - City simulator game with polished graphics
oolite - space-sim game Oolite ported to GNUStep/OpenGL linux
...

Die Suche anhand der Kategoriebezeichner erscheint etwas mühsam, insbesondere dann, wenn man die einzelnen Tags noch nicht genau kennt. Hier helfen kleine Werkzeuge weiter, welche die Idee der Debian-Tags aufgreifen und passend um Schnittstellen erweitern.

Grep-dctrl

Das Debian-Paket dctrl-tools ergänzt die Möglichkeiten zur Suche in den Paketlisten erheblich. Zum diesem Paket gehören die Werkzeuge grep-dctrl, grep-status, grep-available, grep-aptavail und grep-debtags. Grep-dctrl ist das Hauptprogramm, bei allen anderen „Werkzeugen“ aus dem Paket handelt es sich lediglich um symbolische Links darauf. Während Grep-available und Grep-status die Datenbanken von Dpkg durchsuchen, bedient sich Grep-aptavail der Apt-Datenbank, Grep-debtags nutzt die Debtags-Datenbank.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 06/2012 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: