GREP-DCTRL(1) | Manuel de l'utilisateur Debian | GREP-DCTRL(1) |
grep-dctrl, grep-status, grep-available, grep-aptavail, grep-debtags - Rechercher dans des fichiers de contrôle Debian
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.
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).
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.
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 dpkgde 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,DependsRappelez-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 -nrCet 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 -nRemarquez 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.
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.
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.
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)
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 ».
2013-11-26 | Projet Debian |