Provided by: dctrl-tools_2.24-3build3_amd64 

NOM
grep-dctrl, grep-status, grep-available, grep-aptavail, grep-debtags - Rechercher dans des fichiers de
contrôle Debian
SYNOPSIS
commande --copying|-C | --help|-h | --version|-V
commande [options] filtre [ fichier... ]
où commande est grep-dctrl, grep-status, grep-available, grep-aptavail ou grep-debtags.
DESCRIPTION
Le programme grep-dctrl peut répondre à des questions comme « Qu'est-ce que le paquet Debian bidule ? »,
« Quelle est la dernière version du paquet Debian machin ? », « Quels sont les paquets Debian maintenus
par Anne Onyme ? », « Quels sont les paquets Debian ayant un quelconque rapport avec le language de
programmation Scheme ? » et, avec un peu d'aide, « Qui sont les responsables des paquets essentiels d'un
système Debian ? » à partir d'un fichier utile donné.
Les programmes grep-available, grep-status, grep-aptavail et grep-debtags sont des alias de (en réalité,
des liens symboliques vers) grep-dctrl. Ces alias utilisent en entrée respectivement les fichiers
available et status de dpkg(1), la sortie de apt-cache dumpavail, et celle de debtags dumpavail.
grep-dctrl est un programme à la grep spécifique pour traiter n'importe quel fichier au format des
fichiers control de paquet Debian, décrit dans la Charte Debian. Cela comprend les fichiers available et
status de dpkg, et les fichiers Packages d'un support de distribution (comme un CD Debian ou un site FTP
de dépôt Debian).
Il faut donner une expression de filtre sur la ligne de commande. Le filtre définit le type de
paragraphes (c'est-à-dire les enregistrements de paquet) qui seront affichés. Un filtre élémentaire est
un motif de recherche accompagné d'options pour le modifier. Les modificateurs possibles sont --eregex,
--field, --ignore-case, --regex et --exact-match, ainsi que les options courtes équivalentes. Par défaut,
une portion figée de chaîne de caractères qui respecte la casse est recherchée dans chaque paragraphe
(autrement dit, chaque enregistrement de paquet) de l'entrée. Avec les modificateurs adéquats, ce
comportement peut être modifié : la recherche peut être indépendante de la casse et le motif peut être
considéré comme une expression rationnelle étendue POSIX.
Les filtres peuvent être combinés en filtres plus compliqués avec les opérateurs --and, --or et --not.
Les parenthèses (qui doivent normalement être protégées pour l'interpréteur de commandes) peuvent servir
à grouper les filtres.
Par défaut, les paragraphes correspondants sont affichés en entier sur la sortie standard. Des champs
particuliers peuvent être choisis pour l'affichage avec l'option -s.
L'expression filtre est suivie de zéro ou plusieurs noms de fichier. Le nom de fichier - est utilisé pour
désigner le flux d'entrée standard. Les fichiers sont parcourus dans l'ordre, mais un par un : ils ne
sont pas concaténés. Autrement dit, la fin d'un fichier indique toujours la fin d'un paragraphe.
Si aucun nom de fichier n'est précisé, le nom de programme est utilisé pour identifier le fichier
d'entrée par défaut. Les noms de programme correspondent à la forme du nom de programme actuel
(l'argument zéro de la ligne de commande si vous préférez).
OPTIONS
Indication du motif de recherche
--pattern=motif
Indiquer un motif à rechercher. Cette option n'est généralement pas nécessaire, car le motif peut
être donné directement. Cependant, les motifs qui commencent par un tiret (-) doivent être donnés
en utilisant cette option, pour ne pas être confondus avec des options.
Modificateurs de filtres élémentaires
-F champ,champ, ... | --field=champ,champ, ...
Réduire le motif correspondant aux champs donnés. Plusieurs noms de champ dans une option -F et
plusieurs options -F dans un seul filtre sont permis. La recherche désignée par le filtre sera
réalisée parmi tous les champs désignés, et dès que l'un d'entre eux correspond, l'intégralité du
filtre élémentaire sera considéré comme correspondant.
Une spécification de champ peut contenir un deux-points (:). Dans ce cas, la partie précédant le
deux-points est considérée comme le nom du champ dans lequel il faut chercher, et la partie après
le deux-points est considérée comme le nom du champ dont le contenu sera utilisé si le champ à
chercher est vide.
-P Raccourci pour -FPackage.
-S Raccourci pour -FSource:Package.
-e, --eregex
Considérer le motif du filtre élémentaire actuel comme une expression rationnelle étendue POSIX.
-r, --regex
Considérer le motif du filtre élémentaire actuel comme une expression rationnelle standard POSIX.
-i, --ignore-case
Ignorer la casse lors de la recherche d'une correspondance dans le filtre élémentaire actuel.
-X, --exact-match
Faire une correspondance exacte (contrairement à une correspondance de portion de chaîne) dans le
filtre élémentaire actuel.
-w, --whole-pkg
Faire correspondre une expression rationnelle étendue sur l'ensemble des noms de paquet, en
supposant que la syntaxe des champs reliant les paquets est comme Depends, Recommends, etc. Quand
cette option est donnée, ce n'est pas la peine de se préoccuper des noms de sous-paquets comme par
exemple « libpcre3 » qui correspond aussi à « libpcre3-dev ». Cette option implique (et est
incompatible avec) -e.
--eq Faire un test d'égalité dans le système de numérotation de version Debian. Si le motif ou le champ
dans lequel il faut chercher n'est pas un numéro de version Debian valable, le paragraphe est
considéré comme non correspondant. En particulier, le test d'égalité entre simples entiers
positifs est possible.
--lt Faire une comparaison de stricte infériorité dans le système de numérotation de version Debian. Si
le motif ou le champ dans lequel il faut chercher n'est pas un numéro de version Debian valable,
le paragraphe est considéré comme non correspondant. En particulier, la comparaison de simples
entiers positifs est possible.
--le Faire une comparaison d'infériorité ou d'égalité dans le système de numérotation de version
Debian. Si le motif ou le champ dans lequel il faut chercher n'est pas un numéro de version Debian
valable, le paragraphe est considéré comme non correspondant. En particulier, la comparaison de
simples entiers positifs est possible.
--gt Faire une comparaison de stricte supériorité dans le système de numérotation de version Debian. Si
le motif ou le champ dans lequel il faut chercher n'est pas un numéro de version Debian valable,
le paragraphe est considéré comme non correspondant. En particulier, la comparaison de simples
entiers positifs est possible.
--ge Faire une comparaison de supériorité ou d'égalité dans le système de numérotation de version
Debian. Si le motif ou le champ dans lequel il faut chercher n'est pas un numéro de version Debian
valable, le paragraphe est considéré comme non correspondant. En particulier, la comparaison de
simples entiers positifs est possible.
Combinaison de filtres
-!, --not, !
Correspondre si le filtre suivant ne correspond pas.
-o, --or
Correspondre si l'un des deux filtres (précédent et suivant) correspond.
-a, --and
Correspondre si les deux filtres (précédent et suivant) correspondent.
( ... )
Les parenthèses peuvent être utilisées pour grouper. Remarquez qu'il faut les protéger dans la
plupart des interpréteurs de commandes. Des modificateurs de filtres peuvent être donnés avant les
parenthèses ouvrantes ; ils seront traités comme s'ils avaient été répétés pour chaque filtre
élémentaire entre parenthèses.
Modificateurs de format de sortie
-l, --files-with-matches
Output only the file names, each on its own line, of those files that contain at least one
matching paragraph. This is incompatible with the -v and -L options, and all other output format
modifiers will be ignored.
-L, --files-without-matches
Output only the file names, each on its own line, of those files that do not contain any matching
paragraphs. This is incompatible with the -v and -l options, and all other output format modifiers
will be ignored.
-s champ,champ, ... | --show-field=champ,champ, ...
Montrer seulement le corps de ces champs pour les paragraphes correspondants. Les noms de champ ne
doivent pas contenir de deux-points ou de virgule. Les virgules sont utilisées pour délimiter les
noms de champ dans l'argument de cette option. Les champs sont montrés dans l'ordre donné.
Consultez aussi l'option -I. Remarquez qu'en absence de l'option --ensure--dctrl, si un seul champ
est sélectionné, aucun séparateur de paragraphe n'est affiché.
-I, --invert-show
Inverser le sens de l'option -s : montrer seulement les champs qui n'ont pas été nommés en
utilisant l'option -s. À cause de l'implémentation, l'ordre des champs du paragraphe d'origine
n'est pas conservé.
Une spécification de champ peut contenir un deux-points. Dans ce cas, la partie qui précède le
deux-points est considérée comme le nom du champ à montrer, et la partie qui suit le deux-points est
considérée comme le nom du champ dont le contenu sera utilisé si le champ à montrer est vide.
-d Montrer seulement la première ligne du champ Description des paragraphes correspondants. Si
l'option -s n'est pas indiquée, -s Description est implicitement ajouté ; si une option -s est
indiquée sans champ Description, il est ajouté à l'option. Ainsi l'emplacement du champ
Description dépend de l'option -s, c'est le dernier par défaut.
-n, --no-field-names
Supprimer les noms de champ à l'affichage : seul les corps sont affichés. Chaque champ est affiché
dans sa forme d'origine sans nom de champ ni les deux points ni les espaces qui précèdent le début
du corps.
-v, --invert-match
Au lieu de montrer tous les paragraphes qui correspondent, afficher ceux qui ne correspondent pas.
-c, --count
Au lieu de montrer tous les paragraphes qui correspondent (ou, avec -v, ceux qui ne correspondent
pas), afficher le décompte de ces paragraphes.
-q, --quiet, --silent
Ne rien afficher sur le flux de sortie standard. À la place, quitter directement après avoir
trouvé la première correspondance.
Divers
--ensure-dctrl
S'assurer que la sortie est au format dctrl, en particulier qu'il y a toujours une ligne vide pour
séparer les paragraphes. Cette option n'est pas respectée si l'option -n a été sélectionnée,
puisque cette option exige intentionnellement un format non dctrl en sortie. Dans une prochaine
version, cette option pourrait devenir le comportement par défaut.
--compat
Écraser toute option --ensure-dctrl précédemment fournie sur la ligne de commande.
--ignore-parse-errors
Ignorer les erreurs dans l'analyse en entrée. Un paragraphe qui ne peut pas être analysé est
intégralement ignoré. Le paragraphe suivant est supposé commencer après le premier changement de
ligne qui suit l'erreur.
--debug-optparse
Afficher la façon dont la ligne de commande actuelle a été analysée.
--errorlevel=level
Configurer le niveau de journalisation, où niveau est fatal, important, informational ou debug. La
disponibilité de debug depend des options de compilation. Ces catégories sont ici données dans
l'ordre : tous les messages émis lorsque fatal est choisi seront affichés pour un niveau d'erreur
important, etc. Par défaut, important est sélectionné.
-V, --version
Afficher les informations de version.
-C, --copying
Afficher la licence. La sortie est particulièrement longue, veuillez la rediriger quelque part, ou
utiliser un tube (vers votre afficheur de texte préféré par exemple).
-h, --help
Afficher une courte aide.
EXEMPLES
L'utilisation la plus simple de ce programme, ou presque, est d'afficher l'enregistrement d'état ou de
disponibilité d'un paquet. À cet égard, grep-dctrl ressemble à dpkg -s ou dpkg --print-avail. Pour
afficher l'enregistrement d'état du paquet « mixal », faire
% grep-status -PX mixal
et pour obtenir l'enregistrement de disponibilité, utiliser
% grep-available -PX mixal
En fait, vous pouvez demander l'enregistrement du paquet « mixal » dans n'importe quel fichier de
contrôle Debian. Si par exemple vous possédez les fichiers Packages des CD de Debian 6.0 dans le
répertoire actuel, vous pouvez faire
% grep-dctrl -PX mixal Packages
Mais grep-dctrl peut faire bien plus qu'émuler seulement dpkg. Il peut plus ou moins émuler apt-cache !
Ce programme contient une fonctionnalité de recherche dans les descriptions de paquets. Mais on peut
aussi faire
% grep-available -F Description bidule
qui recherche la chaîne « bidule » sensible à la casse dans les descriptions de tous les paquets
disponibles. Pour une recherche insensible à la casse, utiliser
% grep-available -F Description -i bidule
À vrai dire, apt-cache recherche aussi les noms de paquet. La recherche dans les noms peut être faite
séparément, à l'aide de
% grep-available -F Package bidule
ou
% grep-available -P bidule
ce qui revient à peu près au même. On peut aussi rechercher à la fois dans les descriptions et les noms.
Si une correspondance est trouvée dans l'un des deux, l'enregistrement du paquet est affiché avec
% grep-available -P -F Description bidule
ou
% grep-available -F Package -F Description bidule
Ce genre de recherche est identique à celle d'apt-cache.
Voici quelque chose que ne font ni dpkg ni apt-cache. Rechercher une chaîne dans le fichier status ou
available complet (ou n'importe quel fichier de contrôle Debian d'ailleurs) et afficher tous les
enregistrements de paquet correspondants. Essayer
% grep-available dpkg
de temps en temps pour observer à quel point dpkg s'est infiltré en profondeur dans Debian.
Toutes les requêtes précédentes sont basées sur de simples recherches de sous-chaînes. Mais grep-dctrl
peut gérer des expressions rationnelles dans les motifs de recherche. Par exemple, pour voir les
enregistrements d'état de tous les paquets ayant soit « apt » soit « dpkg » dans leurs noms, utiliser
% grep-status -P -e 'apt|dpkg'
Après avoir vu toutes ces requêtes qui fonctionnent bien, vous devez vous demander s'il est nécessaire de
toujours voir l'intégralité du paragraphe. Vous pourriez, par exemple, n'être intéressé que par les
informations de dépendances des paquets concernés. Pour montrer les lignes de dépendances de tous les
paquets que je maintiens, faire
% grep-available -F Maintainer -s Depends 'ajk@debian.org'
Pour voir aussi les noms de paquet, utiliser
% grep-available -F Maintainer -s Package,Depends \
'ajk@debian.org'
Remarquez qu'il ne peut pas y avoir d'espace dans l'argument de l'option -s.
On peut aussi faire des requêtes plus compliquées. Par exemple, pour voir la liste des paquets que je
maintiens et qui dépendent de libc6, faire
% grep-available -F Maintainer 'ajk@debian.org' \
-a -F Depends libc6 -s Package,Depends
Rappelez-vous que d'autres filtres UNIX peuvent également être utilisés. Vous-êtes vous déjà demandé qui
est le développeur Debian le plus actif d'après le nombre de paquets source maintenus ? Il suffit d'avoir
une copie du dernier fichier Sources de n'importe quel miroir Debian.
% grep-dctrl -n -s Maintainer '' Sources | sort | \
uniq -c | sort -nr
Cet exemple montre une astuce : si vous voulez montrer de façon selective seulement certains champs de
tous les paquets, il suffit de fournir un motif vide.
Le terme « bogopaquet » signifie le décompte de paquets qu'un développeur Debian maintient. Pour obtenir
par exemple le décompte de bogopaquet pour le responsable de dctrl-tools, exécuter
% grep-available -c -FMaintainer \
"`grep-available -sMaintainer -n -PX dctrl-tools`"
Parfois, afficher les données de plusieurs champs sur une seule ligne est pratique. Par exemple, la
commande suivante affiche la liste des paquets installés, triés en fonction de Installed-Size.
% grep-status -FStatus -sInstalled-Size,Package -n \
"install ok installed" -a -FInstalled-Size --gt 0 \
| paste -sd " \n" | sort -n
Remarquez qu'il y a exactement deux espaces dans la chaîne " \n".
Un autre cas d'utilisation classique est de chercher les paquets qui en ont un autre dans leurs
dépendances de construction.
% grep-dctrl -s Package -F Build-Depends,Build-Depends-Indep \
quilt /var/lib/apt/lists/*Sources
Ces exemples couvrent beaucoup d'utilisations typiques de cet utilitaire, mais pas l'ensemble des
utilisations possibles. Soyez imaginatifs ! Les fondations sont là, et s'il manque quelque chose,
faites-le moi savoir.
DIAGNOSTICS
En absence d'erreurs, le code de retour 0 est utilisé si au moins une correspondance a été trouvée, et le
code de retour 1 est utilisé si aucune correspondance n'a été trouvée. En cas d'erreur, le code de retour
est 2, à une exception. Si les options -q, --quiet ou --silent sont utilisées, le code de retour 0 est
utilisé quand une correspondance est trouvée même s'il y a eu des erreurs non fatales.
Ces messages sont émis dans les niveaux de journalisation fatal et important. Des messages
complémentaires peuvent être fournis par les bibliothèques du système. Cette liste est incomplète.
Un motif est obligatoire
Vous devez indiquer un motif à rechercher.
filtre mal formé
Aucun filtre n'a été indiqué, alors que c'est nécessaire.
impossible de trouver suffisamment de mémoire
Plus de mémoire que disponible était nécessaire. Ce peut être une erreur passagère, ainsi, en
recommençant, elle peut ne pas réapparaître.
impossible de supprimer les noms de champs lors de l'affichage complet des paragraphes
Si vous n'utilisez pas l'option -s, grep-dctrl transmet simplement les paragraphes correspondants,
sans les modifier du tout. Cela signifie, par exemple, que vous ne pouvez utiliser l'option -n
qu'avec l'option -s.
modificateurs de filtres élémentaires incohérents
Des modificateurs de filtres élémentaires incompatibles ont été utilisés. Par exemple, peut-être
que -X et -e ont été indiqués pour le même filtre élémentaire.
« ) » manquante sur la ligne de commande
Il y avait plus de parenthèses ouvrantes que fermantes dans le filtre donné.
niveau de journalisation « %s » inexistant
The argument to --errorlevel was invalid.
trop de noms de fichiers
Le nombre de fichiers indiqués sur la ligne de commande dépasse les limites de compilation.
trop de champs de sortie
L'argument de -s contenait trop de noms de fichier. Ce nombre est limité à 256.
« ) » inattendue sur la ligne de commande
Il n'y avait pas de parenthèse ouvrante correspondant à une des parenthèses fermantes de la ligne
de commande.
FICHIERS
/var/lib/dpkg/available
Le fichier d'entrée par défaut de grep-available.
/var/lib/dpkg/status
Le fichier d'entrée par défaut de grep-status.
AUTEUR
Le programme et cette page de manuel ont été écrits par Antti-Juhani Kaijanaho <gaia@iki.fi>. Bill
Allombert <ballombe@debian.org> a fourni un des exemples de la page de manuel.
VOIR AUSSI
La Charte Debian. Publiée dans le paquet Debian debian-policy. Également disponible sur le site de
Debian.
apt-cache(1), ara(1), dpkg-awk(1), sgrep(1), dpkg(8)
TRADUCTION
Cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe
francophone de traduction de Debian.
Elle est maintenue par David Prévot david@tilapin.org et les membres de la liste debian-l10n-
french@lists.debian.org depuis mars 2011.
Veuillez signaler toute erreur de traduction en écrivant à debian-l10n-french@lists.debian.org ou par un
rapport de bogue sur le paquet dctrl-tools.
Vous pouvez toujours accéder à la version anglaise de ce document en utilisant la commande « man -L C
section page_de_man ».
Projet Debian 2013-11-26 GREP-DCTRL(1)