Other Alias
grep-dctrl, grep-status, grep-aptavail, grep-debtagsÜBERSICHT
Befehl --copying|-C | --help|-h | --version|-VBefehl [Optionen] Filter [ Datei …]
wobei Befehl entweder grep-dctrl, grep-status, grep-available, grep-aptavail oder grep-debtags ist.
BESCHREIBUNG
Das Programm grep-dctrl kann Fragen beantworten wie Was ist das Debian-Paket Foo?, Welche Version des Pakets Bar ist nun aktuell?, Welche Pakete betreut Max Mustermann?, Welche Pakete gehören irgendwie zur Programmiersprache Scheme? und mit etwas Hilfe Wer betreut die erforderlichen Pakete eines Debian-Systems?, wenn eine nützliche Eingabedatei gegeben ist.Die Programme grep-available, grep-status, grep-aptavail und grep-debtags sind Aliase für (tatsächlich symbolische Verweise auf) grep-dctrl. Diese Aliase benutzen als ihre Standardeingabe die Dateien available und status von dpkg(1) beziehungsweise die Ausgabe von apt-cache dumpavail und debtags dumpavail.
grep-dctrl ist ein spezialisiertes grep-Programm, das für die Verarbeitung jeder Datei gedacht ist, die das Format einer Steuerdatei von Debian-Paketen hat, wie es von der Debian-Richtlinie beschrieben wird. Dies beinhaltet die status-Datei von dpkg und die Packages-Dateien auf einem Weitergabe-Medium (wie einer Debian-CD-ROM oder einer FTP-Site, die Debian bereitstellt).
Sie müssen auf der Befehlszeile einen Filter angeben. Der Filter definiert, welche Art von Absätzen (auch bekannt als Paket-Datensätze) ausgegeben werden. Ein einfacher Filter ist ein Suchmuster zusammen mit einigen Optionen, die es ändern. Mögliche Bestimmungswörter sind --eregex, --field, --ignore-case, --regex und --exact-match beziehungsweise ihre Gegenstücke aus einem einzelnen Buchstaben. Die Suche ist standardmäßig ein Vergleich fester Teilzeichenketten unter Berücksichtigung der Groß-/Kleinschreibung mit jedem Absatz (in anderen Worten, Paket-Datensatz) in der Eingabe. Mit geeigneten Bestimmungswörtern kann dies geändert werden: Die Suche kann unabhängig von der Groß-/Kleinschreibung sein und das Muster kann als erweiterter regulärer POSIX-Ausdruck betrachtet werden.
Filter können mit den Bindewörtern --and, --or und --not zu komplexeren Filtern kombiniert werden. Klammern (die normalerweise für die Shell maskiert werden müssen) können zur Gruppierung benutzt werden.
Standardmäßig werden die vollständig passenden Absätze auf der Standardausgabe ausgegeben; spezielle Felder können mit der Option -s für die Ausgabe ausgewählt werden.
Nach dem Filterausdruck kommen keine oder mehr Dateinamen. Der Dateiname - wird als Synonym für den Standardeingabe-Datenstrom benutzt. Die Dateien werden nacheinander, aber einzeln durchsucht; sie werden nicht zusammengehängt. In anderen Worten, impliziert das Ende einer Datei immer das Ende des aktuellen Absatzes.
Falls keine Dateinamen angegeben wurden, wird der Programmname benutzt, um eine Standardeingabedatei zu identifizieren. Die Programmnamen werden mit der Basisform des Namens des aktuellen Programms verglichen (das nullte Befehlszeilenargument, wenn Sie so wollen).
OPTIONEN
Angabe des Suchmusters
- --pattern=Muster
- gibt das Muster an, nach dem gesucht wird. Dieser Schalter wird im Allgemeinen nicht benötigt, da das Muster selbst angegeben werden kann. Muster, die mit einem Bindestrich (-) beginnen, müssen diesen Schalter jedoch benutzen, da sie sonst irrtümlich für Schalter gehalten würden.
Bestimmungswörter von einfachen Filtern
- -F Feld,Feld, … | --field=Feld,Feld, …
- beschränkt den Mustervergleich auf die angegebenen Felder. Mehrere Feldnamen in einer -F-Option oder mehrere -F-Optionen in einem einfachen Filter sind erlaubt. Die durch den Filter benannte Suche wird inmitten all der genannten Felder durchgeführt und sobald eines von ihnen passt, wird der ganze einfache Filter als passend angesehen.
- Eine Feldangabe kann einen Doppelpunkt (:) enthalten. In einem solchen Fall wird der Teil bis zum Doppelpunkt als Name des Feldes genommen, das angezeigt wird, und der Teil nach dem Doppelpunkt als Name des Feldes, dessen Inhalt benutzt wird, falls das Feld leer ist, das angezeigt werden soll.
- -P
- Kürzel für -FPackage
- -S
- Kürzel für -FSource:Package
- -e, --eregex
- betrachtet das Muster des aktuellen einfachen Filters als einen erweiterten regulären POSIX-Ausdruck.
- -r, --regex
- betrachtet das Muster des aktuellen einfachen Filters als einen regulären Standard-POSIX-Ausdruck.
- -i, --ignore-case
- ignoriert bei der Suche nach einer Entsprechung zum aktuellen einfachen Filter die Groß-/Kleinschreibung.
- -X, --exact-match
- sucht eine exakte Entsprechung (im Gegensatz zur Entsprechung einer Teilzeichenkette) zum aktuellen einfachen Filter.
- -w, --whole-pkg
- sucht eine Entsprechung eines erweiterten regulären Ausdrucks zum vollständigen Paketnamen und schätzt die Syntax für Beziehungsfelder zwischen Paketen, wie Depends, Recommends, … Wenn dieser Schalter angegeben ist, sollten Sie sich keine Gedanken darüber machen, ob Unterpaketnamen wie »libpcre3« ebenfalls auf »libpcre3-dev« passen. Dieser Schalter impliziert (und ist inkompatibel mit) -e.
- --eq
- vergleicht, ob unter dem Debian-Versionsnummernsystem Gleichheit besteht. Falls das Muster oder das zu durchsuchende Feld keine gültige Debian-Versionsnummer ist, wird der Absatz als nicht passend angesehen. Als Sonderfall ist dies imstande, einzelne, nicht negative Ganzzahlen auf Gleichheit zu prüfen.
- --lt
- führt einen »strikt-weniger-als«-Vergleich unter dem Debian-Versionsnummernsystem durch. Falls das Muster oder das zu durchsuchende Feld keine gültige Debian-Versionsnummer ist, wird der Absatz als nicht passend angesehen. Als Sonderfall ist dies imstande, einzelne nicht negative Ganzzahlen auf Gleichheit zu prüfen.
- --le
- führt einen »weniger-oder-gleich«-Vergleich unter dem Debian-Versionsnummernsystem durch. Falls das Muster oder das zu durchsuchende Feld keine gültige Debian-Versionsnummer ist, wird der Absatz als nicht passend angesehen. Als Sonderfall ist dies imstande, einzelne nicht negative Ganzzahlen auf Gleichheit zu prüfen.
- --gt
- führt einen »strikt-größer-als«-Vergleich unter dem Debian-Versionsnummernsystem durch. Falls das Muster oder das zu durchsuchende Feld keine gültige Debian-Versionsnummer ist, wird der Absatz als nicht passend angesehen. Als Sonderfall ist dies imstande, einzelne nicht negative Ganzzahlen auf Gleichheit zu prüfen.
- --ge
- führt einen »größer-oder-gleich«-Vergleich unter dem Debian-Versionsnummernsystem durch. Falls das Muster oder das zu durchsuchende Feld keine gültige Debian-Versionsnummer ist, wird der Absatz als nicht passend angesehen. Als Sonderfall ist dies imstande, einzelne nicht negative Ganzzahlen auf Gleichheit zu prüfen.
Filter kombinieren
- -!, --not, !
- passt, falls der folgende Filter nicht passt.
- -o, --or
- passt, wenn entweder der vorhergehende, der folgende oder beide Filter passen.
- -a, --and
- passt, wenn sowohl der vorhergehende als auch der folgende Filter passt.
- ( … )
- Klammern können zum Gruppieren benutzt werden. Beachten Sie, dass sie für die meisten Shells maskiert werden müssen. Filterbestimmungswörter können vor der öffnenden Klammern angegeben werden; sie werden so behandelt, als wären sie für jeden einfachen Filter innerhalb der Klammern wiederholt worden.
Ausgabeformat-Bestimmungswörter
- -s Feld,Feld, … | --show-field=Feld,Feld, …
- zeigt nur den Rumpf dieser Felder von passenden Absätzen. Die Feldnamen dürfen keine Doppelpunkte oder Kommas enthalten. Kommas werden zum Begrenzen von Feldnamen im Argument dieser Option benutzt. Die Felder werden in der hier angegebenen Reihenfolge angezeigt. Siehe auch die Option -I. Beachten Sie, dass beim Fehlen der Option --ensure--dctrl, falls nur ein Feld ausgewählt wurde, kein Absatztrenner ausgegeben wird.
- -I, --invert-show
- kehrt die Bedeutung der Option -s um: zeigt nur die Felder, die nicht unter Benutzung der Option -s benannt wurden. Als ein Artefakt der Implementierung wird die Reihenfolge der Felder in den Originalabsätzen nicht aufbewahrt.
Eine Feldangabe kann einen Doppelpunkt enthalten. In einem solchen Fall wird der Teil bis zum Doppelpunkt als Name des Feldes genommen, das angezeigt wird, und der Teil nach dem Doppelpunkt als Name des Feldes, dessen Inhalt benutzt wird, falls das Feld, das angezeigt werden soll, leer ist.
- -d
- zeigt nur die erste Zeile des Feldes Beschreibung der passenden Absätze. Falls keine -s-Option angegeben ist, bewirkt diese Option außerdem -s Beschreibung; falls es dort eine -s-Option gibt, sie aber nicht den Feldnamen der Beschreibung enthält, wird der Option einer angehängt. Daher wird die Lage des Feldes Beschreibung in der Ausgabe durch die Option -s bestimmt, falls eine angegeben ist. Vorgabe ist das letzte Feld.
- -n, --no-field-names
- unterdrückt Feldnamen, wenn die angegebenen Felder angezeigt werden, nur ihr Inhalt wird angezeigt. Jedes Feld wird in seiner Originalform ohne den Feldnamen, den Doppelpunkt dahinter und ohne irgendwelche Leerräume vor dem Anfang des Inhalts ausgegeben.
- -v, --invert-match
- zeigt anstelle aller passende Absätze nur jene, die nicht passen.
- -c, --count
- zeigt anstelle aller passenden (oder mit -v nicht passenden) Absätze nur ihre Anzahl.
- -q, --quiet, --silent
- gibt nichts auf dem Standardausgabe-Datenstrom aus; wird stattdessen sofort nach den ersten Treffer beendet
Verschiedenes
- --ensure-dctrl
- stellt sicher, dass die Ausgabe im Dctrl-Format vorliegt und insbesondere, dass immer eine leere Zeile dort ist, um die Absätze zu trennen. Diese Option wird nicht berücksichtigt, falls die Option -n ausgewählt wurde, da diese Option absichtlich für die Ausgabe kein Dctrl-Format verlangt. In zukünftigen Versionen könnte die Verwendung dieser Option zum Standardverhalten werden.
- --compat
- setzt jede vorher auf der Befehlszeile angegebene --ensure-dctrl-Option außer Kraft.
- --ignore-parse-errors
- ignoriert Fehler beim Auswerten der Eingabe. Ein Absatz, der nicht ausgewertet werden kann, wird im Ganzen ignoriert und vom nächsten Absatz wird angenommen, dass er nach dem ersten Zeilenumbruch nach der fehlerhaften Stelle beginnt.
- --debug-optparse
- zeigt, wie die aktuelle Befehlszeile ausgewertet wurde.
- -l Stufe, --errorlevel=Stufe
- setzt die Protokollierungsstufe auf Stufe. Stufe ist entweder fatal, important, informational oder debug, aber Letzteres ist, abhängig von den Optionen zur Kompilierzeit, möglicherweise nicht verfügbar. Diese Kategorien sind hier in ihrer Reihenfolge angegeben; jede Nachricht, die ausgegeben wird, während fatal in Kraft ist, wird in der Fehlerstufe important ausgegeben und so weiter. Vorgabe ist important.
- -V, --version
- gibt Versionsinformationen aus.
- -C, --copying
- gibt die Copyright-Lizenz aus. Dies produziert eine große Ausgabe; stellen Sie sicher, dass Sie sie irgendwohin um- oder weiterleiten (wie etwa Ihren bevorzugten Dateibetrachter).
- -h, --help
- gibt eine Zusammenfassung von Hilfetexten aus.
BEISPIELE
Die nahezu einfachste Benutzung dieses Programms ist die Ausgabe des Status oder der verfügbaren Datensätze eines Pakets. In dieser Hinsicht ist grep-dctrl wie dpkg -s oder dpkg --print-avail. Um den Status-Datensatz des Pakets »mixal« anzuzeigen, geben Sie% grep-status -PX mixalein und um seinen Verfügbarkeitsdatensatz zu erhalten, benutzen Sie
% grep-available -PX mixalEigentlich können Sie den Datensatz des Pakets »mixal« von jeder Debian-Steuerdatei abfragen. Angenommen, Sie haben die Datei Packages von der Debian-6.0-CD-ROM im aktuellen Verzeichnis; nun können Sie Folgendes ausführen:
% grep-dctrl -PX mixal Packages
Aber grep-dctrl kann mehr als nur dpkg nachzuahmen. Es kann mehr oder weniger apt-cache nachbilden! Dieses Programm hat eine Suchfunktion, die Paketbeschreibungen durchsucht. Aber Sie können auch dies tun:
% grep-available -F Description foosucht die Zeichenkette »foo« unter Berücksichtigung der Groß-/Kleinschreibung in allen verfügbaren Paketen. Falls Sie die Groß-/Kleinschreibung nicht berücksichtigen möchten, führen Sie Folgendes aus:
% grep-available -F Description -i fooEhrlich gesagt, sucht apt-cache auch Paketnamen. Es kann separat in den Namen suchen. Führen Sie Folgendes aus, um dies zu tun:
% grep-available -F Paket foooder
% grep-available -P foowas so ungefähr das Gleiche ist. Es kann außerdem sowohl in Beschreibungen als auch in Namen gesucht werden; falls in einem von beiden etwas gefunden wird, wird der Paketdatendatz ausgegeben:
% grep-available -P -F Description foooder
% grep-available -F Package -F Description fooDiese Art der Suche entspricht exakt dem, was apt-cache tut.
Hier nun etwas, was weder dpkg noch apt-cache kann: Suche nach einer Zeichenkette in der ganzen status- oder available-Datei (oder auch irgendeiner Debian-Steuerdatei) und Ausgabe aller Paketdatensätze, bei denen es einen Treffer gibt. Versuchen Sie
% grep-available dpkgund beobachten Sie, wie gründlich dpkg Debian unterwandert hat.
Alle vorhergehenden Abfragen basieren auf der einfachen Suche nach Teilzeichenketten. Aber grep-dctrl kann reguläre Ausdrücke in Suchmustern handhaben. Um zum Beispiel die Statusdatensätze alle Pakete zu sehen, die entweder »apt« oder »dpkg« in ihrem Namen haben, benutzen Sie
% grep-status -P -e 'apt|dpkg'
Nun, nachdem all diese feinen und tollen Anfragen betrachtet wurden, sind Sie vielleicht gespannt, warum es nötig ist, immer den ganzen Absatz zu sehen. Sie interessieren sich möglicherweise nur für die Abhängigkeitsinformationen der beteiligten Pakete. Gut. Um die Abhängigkeitszeilen aller vom Verfasser betreuten Pakete anzuzeigen, geben Sie Folgendes ein:
% grep-available -F Maintainer -s Depends '[email protected]'Falls Sie auch die Paketnamen sehen möchten, benutzen Sie
% grep-available -F Maintainer -s Package,Depends \ '[email protected]'Beachten Sie, dass im Argument für den Schalter -s keine Leerzeichen sein dürfen.
Es sind auch komplexere Abfragen möglich. Um zum Beispiel die Liste der Pakete zu sehen, die vom Verfasser betreut werden und von libc6 abhängen, geben Sie Folgendes ein:
% grep-available -F Maintainer '[email protected]' \ -a -F Depends libc6 -s Package,DependsVergessen Sie nicht, dass Sie auch andere UNIX-Filter benutzen können. Haben Sie sich schon einmal gefragt, wer der aktivste Debian-Entwickler auf Basis der betreuten Pakete ist? Das ist einfach. Sie benötigen nur eine Kopie der aktuellsten Sources-Datei von irgendeinem Debian-Spiegelserver.
% grep-dctrl -n -s Maintainer '' Sources | sort | \ uniq -c | sort -nrDieses Beispiel zeigt einen eleganten Trick: Falls Sie nur einige ausgewählte Felder von allen Paketen anzeigen möchten, geben Sie nur ein leeres Muster an.
Der Begriff »bogopackage« bedeutet die Anzahl der Pakete, die ein Debian-Entwickler betreut. Um die Anzahl der Bogopackages für den Betreuer von dctrl-tools erhalten, geben Sie Folgendes ein:
% grep-available -c -FMaintainer \ "`grep-available -sMaintainer -n -PX dctrl-tools`"
Manchmal ist es nützlich, die Daten mehrerer Felder in der gleichen Zeile auszugeben. Der folgende Befehl gibt zum Beispiel die Liste der installierten Pakete sortiert nach ihrer installierten Größe (Installed-Size) aus.
% grep-status -FStatus -sInstalled-Size,Package -n \ "install ok installed" -a -FInstalled-Size --gt 0 \ | paste -sd " \n" | sort -nBeachten Sie, dass in der Zeichenkette » \n« genau zwei Leerzeichen sein sollten.
Ein anderer häufiger Anwendungsfall ist die Suche nach Paketen, die noch eine andere Bauabhängigkeit haben:
% grep-dctrl -s Package -F Build-Depends,Build-Depends-Indep \ quilt /var/lib/apt/lists/*Sources
Diese Beispiele decken viele typische Verwendungsmöglichkeiten dieses Hilfswerkzeugs ab, aber nicht alle möglichen Anwendungen. Benutzen Sie Ihre Fantasie! Die Teile des Puzzles sind da und wenn sie etwas vermissen, melden Sie es.
DIAGNOSE
Wenn es keine Fehler gibt, wird der Rückgabewert 0 verwandt, falls mindestens eine Entsprechung gefunden wurde. Falls nichts gefunden wurde, wird der Rückgabewert 1 benutzt. Falls es Fehler gab, wird der Rückgabewert 1 genommen, mit einer Ausnahme. Falls die Optionen -q, --quiet oder --silent eingesetzt werden, wird der Rückgabewert 0 verwandt, wenn es einen Treffer gab, unabhängig davon, ob es schwerwiegende Fehler gab.Diese Nachrichten werden in den Protokollierungsstufen fatal und important ausgegeben. Zusätzliche Nachrichten werden von den Systembibliotheken bereitgestellt. Diese Liste ist unvollständig.
- Ein Muster ist zwingend notwendig.
- Sie müssen ein Muster angeben, nach dem gesucht wird.
- missgestalteter Filter
- Es wurde kein Filter angegeben, es ist aber einer erforderlich.
- Speicher reicht nicht aus
- Es wird mehr Speicher benötigt, als vorhanden ist. Dieser Fehler ist vorübergehend, das heißt, falls Sie es erneut versuchen, könnte alles klappen.
- Bei der Anzeige ganzer Absätze können Feldnamen nicht unterdrückt werden
- Wenn Sie nicht den Schalter -s nutzen, reicht grep-dctrl nur die passenden Absätze durch, ohne sie auf irgendeine Art anzufassen. Dies heißt zum Beispiel, dass Sie nur -n verwenden können, wenn Sie Gebrauch von -s machen.
- unstimmige Bestimmungswörter von einfachen Filtern
- Widersprüchliche Bestimmungswörter von einfachen Filtern wurden benutzt; vielleicht wurden beispielsweise -X und -e für den gleichen einfachen Filter angegeben.
- fehlende »)« in der Befehlszeile
- Im angegebenen Filter waren mehr öffnende als schließende Klammern.
- keine derartige Protokollierungsstufe
- Das Argument für -l war ungültig.
- zu viele Dateinamen
- Die Anzahl der auf der Befehlszeile angegebenen Dateinamen überschritt eine Beschränkung zur Kompilierzeit.
- zu viele Ausgabefelder
- Das Argument -s enthielt zu viele Dateinamen. Diese Anzahl ist auf 256 begrenzt.
- unerwartete »)« in der Befehlszeile
- Es gab keine öffnenden Klammern, die zu den schließenden Klammern in der Befehlszeile passten.
DATEIEN
- /var/lib/dpkg/available
- die vorgegebene Eingabedatei von grep-available
- /var/lib/dpkg/status
- die vorgegebene Eingabedatei von grep-status
AUTOR
Das Programm und diese Handbuchseite wurden von Antti-Juhani Kaijanaho <[email protected]> geschrieben. Bill Allombert <[email protected]> stellte eines der Beispiele in der Handbuchseite bereit.TRADUCTION
Diese Übersetzung wurde mit dem Werkzeug po4a <URL:http://po4a.alioth.debian.org/> durch Chris Leick [email protected] und das deutsche Debian-Übersetzer-Team im Dezember 2011 erstellt.
Bitte melden Sie alle Fehler in der Übersetzung an [email protected] oder als Fehlerbericht an das Paket dctrl-tools.
Sie können mit dem folgenden Befehl das englische Original anzeigen »man -L C Abschnitt deutsche_Handbuchseite«.