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.
- -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.
- -l niveau, --errorlevel=niveau
- 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
- L'argument de -l n'était pas valable.
- 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 ».