APT (Advanced Packaging Tool)

La distribution Debian et ses dérivées utilisent l'outil dpkg pour gérér les packages logiciels (les .deb).

APT est un outil utilisé pour gérer la recherche, l'installation, la mise à jour ou la suppression de packages logiciels.

En fait APT est avant tout une bibliothèque C++ de fonctions[1] utilisées par plusieurs programmes de gestion de paquets, dont apt-get et aptitude.

Note pour les lecteurs pressés: aujourd'hui il est recommandé d'utiliser aptitude plutot que apt-get ; Quoiqu'il en soit, il s'agit de choisir l'un de ces 2 outils dè le début de l'utilisation de machine et de ne pas en changer par la suite...

apt-get

La commande apt-get permet d'installer simplement n'importe quel paquet logiciel présent dans les dépôts

apt-get install mon-package

En complément, on utilise apt-cache pour (re)trouver un package

apt-cache search mon-package

Une recherche de la chaîne passée en paramètre est alors effectuée dans le titre et la description de tous les packages disponibles.

Pour les recherches revoyant un grand nombre de résultat, la consutation des informations est malaisée : la commande affiche séquentillement les résultats, dans l'ordre où elle les trouve sans aucun classement.

apt-get et apt-cache sont les 2 executables les lus connus, mis oeur utiisation appellle également l'utilisation d'autres exécutables dont deborphan pour retrouver des packages orphelins. Ainsi Aaron dénombre 16 outils différents[2] avec lesquels l'dministrateur Linux utilisateur de apt-get doit se familiariser.

Synaptic

Beaucoup d'utilisateurs gèrent leurs packages logiciels avec synaptic : ce front-end écrit en GTK+ propose via l'interface graphique un fonctionnement analogue à ceui d'apt-get et ses outils[3].

Les limites

En fait les limites d'apt-get sont surtout la piètre utilisabilité des résultats renvoyés en vrac par apt-cache et sa relative inefficacité lors de la désinstallation de packages : apt-get remove <mon package> n'entraînant pas la suppression systématique de tous les packages devenus inutiles (dépendances etc...)

les dernières versions de apt-get supportent l'option autoremove

apt-get autoremove <mon package>

mais cette option n'est efficace QUE si les paquets dépendants ont été marqués comme tels lors de leur installation.

Aptitude

Les avantages de Aptitude par rapport à apt-get sont les suivants:

  1. meilleure utlisabiité de la recherche
  2. meileure gestion des dépendances
    1. installation auto des paquets recommandés en complément à celui demandé
    2. désinstallatin automatique des packges devenus inutiles

L'innovation d'aptitude est de marquer les relations qui lient un package à d'autres ; Ce mécanisme de marquage propre à aptitude :

  1. offre une efficacité bien meilleure pour une gestion cohérente des packages logiciels (et leur suppression)
  2. rend inopérant la désinstallation par ce dernier de packages installés auparavant via apt-get ou synaptic[4]

Utilisation de aptitude

Utiliser aptitude signfie donc renoncer à utiliser apt-get et synaptic.

Cette utilisation est très simple : synaptic fournissant 2 modes de focntionnement : un mode commande style apt-get et un mode interactif.

Utiliser aptitude comme apt-get

installation d'un paquet

sudo apt-get install package devient

sudo aptitude install package
suppression d'un paquet

sudo apt-get remove package devient

sudo aptitude remove package

sudo apt-get --purge package devient

sudo aptitude purge package
mise à jour des packages dispo depuis les dépôts[5]

sudo apt-get update devient

sudo aptitude update
mise à jour des ckages logiciels innstallés

sudo apt-get upgrade devient

sudo aptitude safe-upgrade

Utiliser aptitude en mode interactif

le mode interctif de aptitude s'utilise ds un terminal, mis son utiisation est simplissime, il suffit de mémoriser qq touches (plus les flèches ;-))

sudo aptitude

aptitude ecran d'accueil

Un premier menu permet avec les flèches haut et bas de faire de dissocie les ckges sntallés, à mettre à jour etc... aptitude fonctionne avec qq raccourcis claviers :

  • u pour update
  • U pour upgrade
  • / ouvre une boîte de recherche : aptitude rechercher un paquet
  • n[6] pour passer u résultat suivant
  • + sélectionne un paquet à installer
  • - sélectionne _n pquet à désinstaller
  • g[7] pour confirmer la sélection
  • g[8] pour appliquer les changements
  • ?pour obtenir de l'aide
  • q pour quitter

En plus, aptitude dispose d'un menu interactif affichable via Ctrl +T aptitude menu interactif

En résumé

apt-get et consors ne sont maintenus que pour des raisons de perennité des systèmes qui l'ont utilisé jusqu'ici. On retiendra donc la règle suivante :

  • utiliser aptitude pour toute nouvelle installation
  • continuer à utiliser apt-get pour les mahines où on commencé comme ça

De mon côté j'utilise toujours apt-get au boulot pour les serveurs qui ont déjà un certain âge et aptitude sur les plus récents.

Pour les stations de travail de la boîte[9], on utilisait plutôt synaptic car son fonctionnement est assez intuitif pour les windoziens. Compte tenu également de la baisse de frilosité des stagiaires devant la ligne de commande, nous avons décidé de n'utiliser dorénavant QUE aptitude.

De même je conseille à Manu (qui est sur le point de faire une install xubuntu sur son EeePC), même si il s'est déjà familiarisé avec apt-get et synaptic de passer à aptitude.

Pour utiliser des billets présents sur avaland.org qui mentionne les commandes avec apt-get, se reporter aux équivalences apt-get/aptitude indiquées dans ce billet. Pour les billets futurs, je n'indiquerai donc que la syntaxe avec aptitude.

Oli

Notes

[1] on parle parfois de protocole APT; en effet APT est aussi utilisé par d'autes distributions (voir apt-rpm) ; dans ce billet on se cantonne à Debian donc à APT comme interface de dpkg

[2] apt-cdrom, apt-config, apt-extracttemplates, apt-ftparchive, apt-key, apt-mark, apt-sortpkgs

[3] attention synaptic est une interface graphique pour APT, pas pour apt-get

[4] Aptitude propose un mécanisme de tag markauto, unmarkauto selon que les packages aient été installés à la main ou en auto

[5] le fichier de configuration des dépôts ne change pas, c'est toujours /etc/apt/sources.lisst

[6] n comme next

[7] go

[8] 2 fois g pour go go...

[9] donc avec serveur graphique