debian/ubuntu : APT, apt-get et synaptic vs aptitude
Par oliman le dimanche 22 juin 2008, 08:48 - Install et configure - Lien permanent
Petite mise au point sur l'installation de packages dans la distro Debian et ses dérivées.
Ce billet oblige à reconsidérer une partie des billets que j'ai précedemment écrits et influencera aussi les futurs.
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:
- meilleure utlisabiité de la recherche
- meileure gestion des dépendances
- installation auto des paquets recommandés en complément à celui demandé
- 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 :
- offre une efficacité bien meilleure pour une gestion cohérente des packages logiciels (et leur suppression)
- 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

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 :

- 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 
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


