Personnaliser la liste des paquets

Personnaliser la manière d'afficher les paquets
Personnaliser la hiérarchie des paquets
Personnaliser la manière de trier les paquets

La liste de paquets peut être énormément personnalisée : la manière d'afficher les paquets, de les ranger, de les trier et même l'organisation de l'affichage sont toutes modifiables.

Personnaliser la manière d'afficher les paquets

Cette section décrit la manière de configurer le contenu et le formatage de la liste des paquets, de la ligne d'état, de la ligne d'en-tête, ainsi que l'affichage de la commande aptitude search.

Le format de chacune de ces zones est défini par une « chaîne de format ». Une chaîne de format est une chaîne de texte contenant des commandes de format débutant par % comme %p, %S, etc. L'affichage correspondant est créé en remplaçant les commandes débutant par % en fonction de leur signification (donnée ci-dessous).

Une commande de format (commençant par %) peut soit avoir une taille fixe et dans ce cas elle est toujours remplacée par la même quantité de texte (avec l'ajout d'espaces pour le compléter si nécessaire), soit elle est « étirable » ce qui signifie qu'elle prend tout l'espace laissé libre par les colonnes de texte à taille fixe. S'il y a plusieurs colonnes étirables, l'espace supplémentaire est divisé équitablement entre les colonnes.

Toutes les commandes de format possèdent une taille fixe et/ou étirable par défaut. La taille d'une commande de format peut être modifiée en insérant la valeur de la taille voulue entre le signe pourcentage (%) et le caractère identifiant le format. Par exemple, %20V produit une colonne version installable des paquets d'une largeur de 20 caractères. Placer un point d'interrogation (?) entre le signe % et le caractère identifiant la commande de format entraîne la variation de la largeur de base de la colonne en fonction de son contenu. Remarquez, néanmoins, que les colonnes de ce type risquent de ne plus s'aligner verticalement.

Si vous souhaitez qu'une commande de format soit étirable, même si elle possède normalement une largeur fixe, placez un signe dièse (« # ») immédiatement après elle. Par exemple, pour afficher la version installable d'un paquet sans vous soucier de sa longueur, utilisez la commande de format %V#. Vous pouvez aussi mettre un # après autre chose qu'une commande de format ; aptitude va alors « étirer » le texte qui précède le # en insérant des espaces additionnelles après lui.

En résumé, la syntaxe des commandes de format est :

%[largeur][?]code[#]

Les variables de configuration Aptitude::UI::Package-Display-Format, Aptitude::UI::Package-Header-Format et Aptitude::UI::Package-Status-Format définissent les formats par défaut de la liste de paquets, de l'en-tête au-dessus de la liste de paquets et de la ligne d'état en dessous de la liste de paquets. Pour changer la manière dont les résultats de la commande aptitude search sont affichés, utilisez l'option -F.

Les commandes de format (débutant par %) suivantes sont disponibles :

[Note]Note

Certaines descriptions ci-dessous font référence au « paquet ». Avec l'interface graphique, c'est soit le paquet qui est affiché, soit le paquet actuellement sélectionné. Dans la recherche avec l'interface en ligne de commande, c'est le paquet qui est affiché.

CommandeNomTaille par défautÉtirableDescription 
%%% littéral1Non Ce n'est pas vraiment une commande de format. Cela insère simplement un signe pourcentage dans l'affichage à l'endroit où elle est placée.
%#nombreRemplacement de paramètreVariableNon Dans certaines circonstances, une chaîne de format d'affichage comportera des « paramètres » : par exemple, dans la ligne de commande search, les groupes correspondants à la recherche sont utilisés comme paramètres lors de l'affichage du résultat. Le code de format sera remplacé par le paramètre indiqué par nombre.
%aMarque d'action1Non Caractère unique résumant l'action à exécuter sur le paquet, comme décrit dans la Figure 2.10, « Valeurs de l'indicateur « d'action » ».
%AAction10Non Description plus lisible de l'action à exécuter sur le paquet.
%BComptage des cassés12Non S'il n'y a pas de paquet cassé, ne rien afficher. Sinon, afficher une chaîne telle que « Cassé : 10 » indiquant le nombre de paquets cassés.
%cMarqueur d'état actuel1Non Caractère unique résumant l'état actuel du paquet, comme décrit dans la Figure 2.9, « Valeurs de l'indicateur de « l'état courant » ».
%CÉtat actuel11Non Description plus lisible de l'état actuel du paquet.
%dDescription 40Oui Description courte du paquet.
%DTaille du paquet8Non Taille de l'archive contenant le paquet.
%EArchitecture10Non Afficher la chaîne de caractères de l'architecture, par exemple « amd64 ».
%eSource30Non Afficher le paquet source, par exemple « aptitude » pour « aptitude-doc-en ».
%HNom d'hôte15Non Nom d'hôte de l'ordinateur sur lequel aptitude fonctionne.
%iPriorité (Pin priority)4Non Priorité maximale assignée à la version du paquet. Pour les paquets, cela affiche la priorité de la version dans laquelle le paquet est forcé d'être installé (s'il y en a une).
%ITaille installée8Non Espace disque (estimé) occupé par le paquet.
%mResponsable30Oui Responsable du paquet.
%MMarquage automatique1Non Si le paquet a été installé automatiquement, afficher « A », sinon ne rien afficher.
%nVersion du programmeLongueur de « 0.8.9 »Non Version d'aptitude en cours de fonctionnement, actuellement « 0.8.9 ».
%NNom du programmeLongueur du nom.Non Nom du programme, généralement « aptitude ».
%oTaille à télécharger17Non Si aucun paquet ne doit être installé, ne rien afficher. Sinon, afficher une chaîne indiquant la taille totale prise par les paquets à installer (c'est-à-dire une estimation de ce qu'il faut télécharger) ; par exemple, « 28,5 ko à télécharger ».
%OOrigine30Non Afficher l'origine du paquet, par exemple « Debian:unstable [amd64] ».
%pNom du paquet30Oui Afficher le nom du paquet. Quand un paquet est affiché dans une arborescence, le nom sera indenté, si possible, en fonction de la profondeur de l'arbre.
%PPriorité9Non Afficher la priorité du paquet.
%rCompteur des dépendances inverses2Non Afficher le nombre approximatif de paquets installés qui dépendent du paquet.
%RAbréviation de la priorité3Non Afficher la description abrégée de la priorité du paquet : par exemple, « Important » devient « Imp ».
%sSection10Non Afficher la section du paquet.
%SNiveau de confiance1Non Si le paquet n'est pas certifié par une source de confiance, affiche la lettre "U".
%tArchive10Oui Archive dans laquelle se trouve le paquet.
%TÉtiquettes (et étiquettes utilisateur)30Non

Afficher « * » si le paquet est étiqueté, rien sinon[19].

Ce champ contient aussi les étiquettes utilisateur.

%uModification de l'utilisation du disque30Non Si l'action prévue doit modifier l'espace disque utilisé, cela indique le changement, par exemple, « Utilisera 100,0Mo d'espace disque. »
%vVersion actuelle14Non Afficher la version actuellement installée du paquet, ou <aucun> si le paquet n'est pas actuellement installé.
%VVersion installable14Non Affiche la version du paquet qui serait installée si PaquetInstaller (+) était exécuté sur le paquet, ou <aucun> si le paquet n'est pas actuellement installé.
%ZChangement de taille9Non Affiche l'espace supplémentaire utilisé ou l'espace libéré par l'installation, la mise à jour ou la suppression du paquet.

Personnaliser la hiérarchie des paquets

La hiérarchie des paquets est produite par une politique de regroupement, décrivant la manière de construire la hiérarchie. La politique de regroupement décrit une « succession » de règles. Chaque règle peut retirer des paquets, créer une sous-hiérarchie dans laquelle on place des paquets ou encore manipuler l'arborescence. Les variables de configuration Aptitude::UI::Default-Grouping et Aptitude::UI::Default-Preview-Grouping définissent les politiques de regroupement lors de la création, respectivement, de nouvelles listes de paquets et de nouveaux écrans de prévisualisation. Vous pouvez définir la politique de regroupement pour la liste de paquets actuelle en appuyant sur G.

La politique de regroupement est décrite par une liste de règles séparées par des virgules : règle1,règle2,.... Chaque règle est constituée de son nom, éventuellement suivi d'arguments : par exemple, versions ou section(subdir). Le fait que des arguments soient requis et le nombre d'arguments requis (ou permis) dépendent du type de la règle.

Une règle peut être non terminale ou terminale. Une règle non terminale va traiter un paquet en produisant une partie de la hiérarchie, puis en le passant à la règle suivante. Une règle terminale, au contraire, va aussi traiter une partie de l'arborescence (typiquement les entrées correspondant au paquet), mais ne passera pas le paquet à la règle qui suit. Si aucune règle terminale n'est spécifiée, aptitude va utiliser la règle par défaut qui crée les « entrées de paquet » standard.

action

Regrouper les paquets suivant l'action prévue sur ceux-ci. Les paquets qui ne peuvent être mis à jour ou qui sont inchangés sont ignorés. C'est le regroupement qui est utilisé dans l'arborescence d'aperçu d'installation.

architecture

Regrouper les paquets en fonction de leur architecture.

deps

C'est une règle terminale.

Créer les entrées de paquets standard qui peuvent être dépliées pour laisser apparaître les dépendances d'un paquet.

filter(motif)

N'inclure que les paquets dont au moins une version correspond au motif.

Si le motif est manquant, aucun paquet n'est écarté. Ceci est une fonctionnalité de compatibilité ascendante et peut être supprimée dans le futur.

firstchar[(mode)]

Regrouper les paquets en fonction de la première lettre de leur nom.

Pour être précis, ce n'est pas toujours la première lettre -- pour les paquets commençant par lib*, le nom du groupe est liba, libb… comme dans les dépôts FTP Debian.

mode peut prendre les valeurs suivantes :

binary

Regrouper en fonction du nom du paquet binaire. C'est le comportement par défaut si aucun mode n'est indiqué.

Exemple 2.7. Politique de groupement firstchar ou firstchar(binary)

Avec le paquet source dpkg comme exemple, les paquets binaires dselect, dpkg et dpkg-dev seraient dans le groupe d alors que libdpkg-dev et libdpkg-perl seraient ajoutés au groupe libd.


source

Regrouper en fonction du nom du paquet source.

Cela est utile par exemple en parcourant la liste des paquets provenant du même paquet source (politique de groupement par paquet source) dans de grandes collections (comme tous les paquets installés, tous les paquets pouvant être mis à jour, tous les paquets de la section « main »), pour ajouter une étape intermédiaire de groupement. De cette façon, il est possible d'émuler la hiérarchie des dépôts FTP (en utilisant le groupement "section(topdir), firstchar(source),source").

Exemple 2.8. Politique de regroupement firstchar(source)

Avec encore le paquet source dpkg comme exemple, tous les paquets binaires dselect, dpkg, dpkg-dev, libdpkg-dev et libdpkg-perl seraient dans le même groupe d.


pattern(motif [=> titre] [{ politique }] [, ...])

Une politique de regroupement personnalisable. Chaque version de chaque paquet est mise en correspondance avec les motifs donnés. La première correspondance trouvée est utilisée pour attribuer un titre au paquet ; les paquets sont alors triés selon leur titre. Les chaînes de la forme \N qui apparaissent dans le titre seront remplacées par le Nième résultat de la recherche. Si le titre est absent, sa valeur par défaut est alors \1. Remarquez que les paquets qui ne correspondent à aucun motif n'apparaîtront pas du tout dans l'arborescence.

Exemple 2.9. Utilisation de pattern pour grouper les paquets par responsable

pattern(?maintainer() => \1)


L'exemple ci-dessus groupera les paquets selon leur champ Responsable. La politique pattern(?maintainer()) fera la même chose, car l'absence de titre équivaut à avoir mis \1.

Plutôt qu'un => titre, une saisie peut se terminer par ||. Cela indique que les paquets qui correspondent au motif seront insérés dans l'arborescence au même niveau que le regroupement de motifs, au lieu d'être placés dans des sous-arbres.

Exemple 2.10.  Utilisation de pattern avec quelques paquets placés à la racine

pattern(?action(remove) => Paquets qui vont être supprimés, ?true ||)


L'exemple ci-dessus placera les paquets qui seront supprimés dans un sous-arbre et placera tous les autres paquets dans le niveau actuel, groupés en fonction des politiques qui suivent le motif.

Par défaut, tous les paquets qui correspondent à chaque motif sont groupés selon les règles qui suivent la politique pattern. Pour indiquer une politique différente pour certains paquets, écrivez celle-ci entre accolades ({}) après le titre du groupe, après la double barre ||, ou après le motif si les deux autres sont absents. Par exemple :

Exemple 2.11.  Utilisation de la politique de regroupement pattern avec des sous-politiques

pattern(?action(remove) => Paquets à supprimer {}, ?action(install) => Paquets à installer, ?true || {status})


La politique dans l'exemple ci-dessus a les effets suivants :

  • Les paquets à supprimer sont placés dans un sous-arbre étiqueté « Paquets à supprimer ». La politique de regroupement pour ce sous-arbre est vide, de sorte que les paquets y sont placés dans une liste plate.

  • Les paquets à installer sont placés dans un sous-arbre étiqueté Paquets à installer et sont regroupés en fonction des politiques qui suivent pattern.

  • Tous les autres paquets sont placés à la racine de l'arborescence, et regroupés selon leur état.

Consultez la section la section intitulée « Motifs de recherche » pour plus d'information sur le format du motif.

priority

Regrouper les paquets en fonction de leur priorité.

section[(mode[,passthrough])]

Regrouper les paquets en fonction de leur champ Section.

mode peut prendre les valeurs suivantes :

none

Regrouper en fonction de la totalité du champ Section, si bien que des catégories comme « non-free/games » seront créées. C'est le comportement par défaut si aucun mode n'est indiqué.

topdir

Regrouper en fonction de la partie du champ Section précédant la première barre oblique « / ». S'il n'y en a pas ou si cette partie du champ Section n'est pas identifiée, la première entrée dans la liste Aptitude::Sections::Top-Sections sera utilisée à la place.

subdir

Regrouper en fonction de la partie du champ Section suivant la première barre oblique « / », si elle est contenue dans la liste Aptitude::Sections::Top-Sections. Sinon, ou s'il n'y a pas de barre oblique, regrouper en fonction du champ Section entier.

subdirs

Regrouper en fonction de la partie du champ Section après la première barre oblique « / », si la portion du champ qui précède apparaît dans la liste Aptitude::Sections::Top-Sections. Sinon, ou s'il n'y a pas de barre oblique, le champ Section entier sera utilisé. S'il y a plusieurs caractères « / » dans la portion du champ qui est utilisé, une hiérarchie de groupes va être créée. Par exemple, si « games » n'appartient pas à la liste Aptitude::Sections::Top-Sections, un paquet de la section « games/arcade » sera placé dans le groupe intitulé « games », dans un sous-arbre appelé « arcade ».

Si passthrough est présent, les paquets qui, pour une raison ou une autre, ne possèdent pas de véritable Section (par exemple, les paquets virtuels) sont passés directement au niveau de regroupement suivant sans être placés en premier dans une sous-catégorie.

status

Regrouper les paquets dans les catégories suivantes :

  • Mise à jour de sécurité

  • Pouvant être mis à jour

  • Nouveaux

  • Installés

  • Non installés

  • Obsolètes ou créés localement

  • Virtuels

source

Regrouper les paquets en fonction du nom de leur paquet source.

tag[(aspect)]

Regrouper les paquets en fonction de l'information du champ Marqueur contenu dans les fichiers de paquets Debian. Si un aspect est fourni, alors seuls les marqueurs correspondants à cet aspect seront affichés. Sinon, tous les paquets seront affichés au moins une fois (les paquets sans marqueur seront placés dans une liste séparée de ceux qui en ont).

Pour plus d'informations sur debtags, consultez le site http://debtags.alioth.debian.org.

task

Crée une arborescence appelée « Tâches » qui contient les tâches disponibles (les informations sur les tâches sont lues depuis debian-tasks.desc du paquet tasksel). La règle suivant task va créer ses catégories comme des enfants de Tâches.

versions

C'est une règle terminale.

Créer des entrées de paquets standard qui peuvent être dépliées pour laisser apparaître les versions du paquet.

Personnaliser la manière de trier les paquets

Par défaut, les paquets, dans la liste de paquets ou dans la sortie de la commande aptitude search, sont triés dans l'ordre alphabétique de leur nom. Néanmoins, il est souvent utile de les trier suivant d'autres critères (par exemple, la taille du paquet), et aptitude vous autorise à le faire en modifiant la politique de tri.

Comme la politique de regroupement décrite dans la section précédente, la politique de tri est une liste séparée par des virgules. Chaque entrée de la liste est une règle de tri ; si les paquets sont identiques selon la première règle, la seconde tente de les trier, et ainsi de suite. Placer un caractère tilde (~) avant la règle inverse la signification habituelle de celle-ci. Par exemple, priority,~name va trier les paquets par priorité, et les paquets de même priorité seront placés dans l'ordre alphabétique inverse.

Pour modifier la politique de tri pour une liste active de paquets, appuyez sur S. Pour changer l'ordre par défaut pour toutes les listes de paquets, définissez l'option de configuration Aptitude::UI::Default-Sorting. Pour modifier la politique de tri pour la commande aptitude search, utilisez l'option en ligne de commande --sort.

Les règles disponibles sont :

installsize

Trier les paquets selon l'estimation de la taille nécessaire à l'installation.

installsizechange

Trier les paquets selon le changement dans la taille après installation (estimation de la place disponible nécessaire pour l'installation), en comparaison avec la version actuelle (si elle est installée) et la version candidate pour l'installation, la mise à jour ou la suppression.

debsize

Trier les paquets selon leur taille.

name

Trier les paquets selon leur nom.

priority

Trier les paquets selon leur priorité.

version

Trier les paquets selon leur version.



[19] Actuellement l'étiquetage n'est pas pris en charge. Cette commande est destinée à un usage futur.