APT est un programme C++ dont la majorité du code est déportée dans la bibliothèque partagée libapt-pkg
. La raison de ce choix est qu'il rend relativement facile de réaliser une interface (un « frontal »), puisqu'il suffit de faire appel au code placé dans la bibliothèque. apt-get
n'était d'ailleurs à l'origine qu'un frontal développé pour tester libapt-pkg
, bien que son succès ait tendance à le faire oublier.
aptitude
est un programme interactif en mode semi-graphique, utilisable sur la console, qui permet de naviguer dans la liste des paquets installés et disponibles, de consulter l'ensemble des informations et de les marquer en vue d'une installation ou d'une suppression. Comme il s'agit cette fois d'un programme réellement conçu pour être utilisé par les administrateurs, on y trouve des comportements par défaut plus intelligents que dans apt-get
, en plus d'une interface plus abordable.
En ce qui concerne l'interface, aptitude
présente initialement une vue séparant les paquets selon leur état actuel (installé, non installé, ou installé mais non disponible sur les miroirs — d'autres sections affichent les tâches, les paquets virtuels et les paquets apparus récemment sur les miroirs). Afin de faciliter la navigation thématique, il est possible d'employer d'autres vues. Dans tous les cas, aptitude
affiche sur un écran une liste combinant catégories et paquets. Les catégories étant organisées dans une arborescence, on pourra déplier ou refermer les branches respectivement avec les touches Entrée, [ et ]. On utilisera + pour marquer un paquet comme à installer, - pour le marquer comme à supprimer et _ pour le purger (à noter que ces touches peuvent aussi être utilisées sur les catégories, auquel cas les actions concernées seront appliquées à tous les paquets de la catégorie) ; u met à jour les listes de paquets disponibles et Maj+u prépare une mise à jour globale du système. g bascule vers un résumé des modifications demandées (et un nouvel appui sur g déclenche alors la mise en application de ces modifications) et q permet de sortir de la vue courante ; si l'on est dans la vue initiale, cela équivaut à fermer aptitude
.
Pour chercher un paquet, on utilisera /, suivi d'un motif de recherche. Ce motif peut porter sur le nom du paquet, mais aussi sur sa description (si on le fait précéder de ~d
), sa section (avec ~s
) ou d'autres caractéristiques détaillées dans la documentation. Les mêmes motifs peuvent servir à filtrer les paquets affichés, fonctionnalité accessible grâce à la touche l (comme limit).
aptitude
facilite grandement la gestion du marquage « automatique » des paquets Debian (voir
Section 6.2.7, « Suivi des paquets installés automatiquement »). Il permet de parcourir la liste des paquets installés, d'en marquer comme automatiques avec
Maj+
m et d'enlever cette marque avec la touche
m. Les paquets « automatiques » sont marqués d'un « A » dans la liste des paquets. Cette fonctionnalité permet également de visualiser les paquets dont on se sert « consciemment » sur une machine, sans lister toutes les bibliothèques et dépendances qui ne nous intéressent pas. Le motif de recherche, qui peut être utilisé avec
l (pour activer le mode filtrage), est
~i!~M
. Il spécifie de n'afficher que les paquets installés (
~i
) non marqués comme automatiques (
!~M
).
6.4.1.1. Gestion des recommandations, suggestions et tâches
Un autre intérêt d'aptitude
est qu'il respecte les recommandations entre paquets tout en permettant à l'utilisateur de ne pas les installer au cas par cas. Ainsi, le paquet gnome recommande (entre autres) gdebi. Si l'on sélectionne le premier pour l'installation, le second sera également sélectionné (et marqué comme automatique s'il n'est pas déjà présent sur le système). Un appui sur g permet de s'en rendre compte : gdebi figure sur l'écran de résumé des actions en attente dans la liste des paquets ajoutés automatiquement pour satisfaire des dépendances. On peut cependant décider de ne pas l'installer, en le désélectionnant avant de valider les opérations.
On notera que cette fonction de suivi des recommandations ne s'applique pas lors d'une mise à jour. Ainsi, si une nouvelle version de gnome recommande un paquet qu'il ne recommandait pas auparavant, il ne sera pas marqué pour l'installation. En revanche, il sera mentionné dans l'écran de mise à jour, afin de vous laisser la possibilité de l'installer malgré tout.
Les suggestions entre paquets sont également prises en compte, mais de manière adaptée à leur statut particulier. Ainsi, comme gnome suggère dia-gnome, ce dernier sera listé sur l'écran de résumé des actions (dans la section des paquets qui sont suggérés par d'autres paquets), afin qu'il soit visible et que l'administrateur puisse décider de tenir compte, ou non, de la suggestion. Mais comme il s'agit d'une simple suggestion et non d'une dépendance ou recommandation, le paquet ne sera pas sélectionné et sa sélection devra être manuelle (le paquet ne sera donc pas marqué comme automatique).
Dans la même veine, rappelons qu'aptitude exploite intelligemment le concept de tâche. Ces tâches étant affichées comme des catégories dans les écrans de listes de paquets, on peut soit choisir une tâche complète à installer ou supprimer, soit consulter la liste des paquets inclus dans une tâche afin d'en sélectionner un sous-ensemble plus limité.
6.4.1.2. Meilleurs algorithmes de résolution
Enfin, signalons pour terminer cette section qu'aptitude
dispose d'algorithmes plus évolués qu'apt-get
en ce qui concerne la résolution des situations délicates. Si un ensemble d'actions est demandé, qui, menées conjointement, aboutissent à un système incohérent, aptitude
évalue plusieurs scénarios possibles et les propose par ordre de pertinence décroissante. Ces algorithmes ne sont cependant pas infaillibles ; heureusement, il reste la possibilité de sélectionner manuellement les actions à effectuer. Si les actions actuellement sélectionnées mènent à des contradictions, le haut de l'écran mentionne un nombre de paquets « cassés » (et on peut naviguer directement vers ces paquets en appuyant sur b). Il est alors possible de construire manuellement une solution aux problèmes constatés. On peut notamment, en sélectionnant un paquet avec Entrée, avoir accès aux différentes versions disponibles. Si le choix d'une de ces versions plutôt que d'une autre permet de résoudre le problème, on n'hésitera pas à utiliser cette fonction. Lorsque le nombre de paquets cassés descendra à zéro, on pourra en toute confiance passer par le résumé des actions à effectuer pour une dernière vérification avant leur mise en application.
synaptic
est un gestionnaire de paquets Debian en mode graphique (il utilise GTK+/GNOME). Il dispose d'une interface graphique efficace et propre. Ses nombreux filtres prêts à l'emploi permettent de voir rapidement les nouveaux paquets disponibles, les paquets installés, ceux que l'on peut mettre à jour, les paquets obsolètes, etc. En naviguant ainsi dans les différentes listes, on indique progressivement les opérations à effectuer (installer, mettre à jour, supprimer, purger). Un simple clic suffit à valider l'ensemble de ces choix et toutes les opérations enregistrées sont alors effectuées en une seule passe.