{{tag>apt gestionnaire_de_paquets installation_logiciel}}
----
====== Aptitude ======
Cette page est une sous-partie de la page **"[[:tutoriel/comment_installer_un_paquet|Comment installer un paquet]]"**.
**Aptitude** est un gestionnaire de paquets basé sur l'infrastructure [[:APT]], c'est-à-dire que vous pourrez installer, supprimer et mettre à jour les applications ([[:apt#le_paquet|paquets]]) avec Aptitude. Il présente des fonctionnalités équivalentes à //dselect// ou //[[:apt-get]]//.
Il y a deux façons d'utiliser Aptitude :
* d'une façon semblable à [[:apt-get]] ;
* avec une interface interactive.
===== Pré-requis =====
* Disposer des [[:sudo|droits d'administration]].
* Disposer d'une connexion à Internet configurée et activée.
=====Installation=====
**Aptitude** n'est pas installé par défaut dans Ubuntu. Pour l'utiliser, [[tutoriel/comment_installer_un_paquet|installer le paquet]] **[[apt>aptitude]]**
==== Installation ====
Pour installer un paquet ainsi que ses dépendances "automatiques" tapez dans un [[:terminal]] la ligne suivante à l'invite de commande:
sudo aptitude install
==== Suppression ====
Pour supprimer un paquet, ainsi que ses dépendances "automatiques" devenues inutiles :
sudo aptitude remove
==== Suppression (2) ====
Pour libérer un paquet (en le mettant "automatique") : celui-ci sera soit désinstallé tout de suite, soit automatiquement désinstallé dès que plus aucun autre paquet n'aura besoin de lui :
sudo aptitude markauto
==== Suppression + Purge ====
Pour désinstaller un paquet et supprimer ses fichiers de configuration :
sudo aptitude purge
==== Mise-à-jour dépôts ====
Pour avoir une version à jour de la liste des paquets disponibles, à faire avant toute installation :
sudo aptitude update
==== Mise-à-jour paquets ====
Pour télécharger et installer les nouvelles versions des paquets installés :
sudo aptitude safe-upgrade
==== Mise-à-jour distribution ====
Pour faire une mise à jour de distribution, ou pour les mises à jour nécessitant d'installer ou de désinstaller les dépendances nécessaires :
sudo aptitude full-upgrade
===== Interface interactive =====
Aptitude est intéressant parce qu'on peut l'utiliser de façon interactive. Pour commencer, lancez Aptitude :
sudo aptitude
Vous serez alors (après avoir entré votre mot de passe) face à une liste de paquets, classés par état. Une fois dans Aptitude, vous pourrez installer des paquets, les supprimer, les mettre à jour, etc. à l'aide des touches du claviers. Pour quitter, appuyez sur « q » et confirmez en appuyant sur « o ».
==== Installation ====
Pour installer un paquet, vous devrez faire comme avec [[:Synaptic]] : le rechercher, le sélectionner pour installation, puis appliquer. \\
Pour rechercher un paquet, appuyez sur « / ». Vous serez alors face à une boite de recherche. Entrez le nom du paquet et la recherche se fera automatiquement. Une fois que le nom est écrit au complet, appuyez sur « Entrée ». Si ce n'est pas le paquet correspondant, appuyer sur « n » pour rechercher le paquet suivant qui contient les termes recherchés, jusqu'à ce que vous trouviez le paquet à installer. \\
Lorsque le paquet est trouvé, appuyez sur la touche « + » pour le sélectionner pour installation. Les dépendances seront automatiquement sélectionnées aussi. \\
Pour confirmer les changements appuyez sur « g » appuyez encore sur « g » pour confirmer ou sur « q » pour revenir à l'écran précédent.
En résumé :
* « / » pour la recherche
* « n » pour poursuivre la recherche (**n**ext)
* « + » pour sélectionner pour installation
* « = » pour maintenir le paquet dans sa version actuelle
* « g » (première fois) confirmer les changements (**g**o)
* « g » (deuxième fois) pour appliquer les changements (**g**o)
==== Suppression ====
Pour supprimer un paquet, il faut suivre sensiblement la même démarche, donc rechercher avec « / », puis sélectionner pour suppression avec « -- » ou encore, pour supprimer les fichiers de configuration aussi, « _ » et enfin confirmer avec « g » et appliquer avec un autre « g ». Vous remarquerez que les paquets qui avaient été installés automatiquement par Aptitude pour satisfaire les dépendances seront automatiquement supprimés s'ils ne sont plus utilisés.
En résumé :
* « -- » pour une suppression simple (''apt-get remove'')
* « _ » pour une suppression du paquet et de ses fichiers de configuration (''apt-get remove --purge'')
* « = » pour maintenir le paquet dans sa version actuelle
* « g » (première fois) confirmer les changements
* « g » (deuxième fois) pour appliquer les changements
==== Mise à jour ====
Pour une mise à jour de la **liste** des paquets disponibles, il suffit d'appuyer sur « u ». Pour mettre à jour les **paquets** qui peuvent être mis à jour, appuyez sur « U », puis sur « g » pour confirmer et une autre fois pour appliquer. Pour mettre à jour seulement un paquet dans tous ceux qui peuvent être mis à jour, faites comme si vous vouliez l'installer, recherchez-le puis appuyez sur « + », « g » et encore « g ».
En résumé :
* « u » mise à jour de la liste des paquets (''apt-get update'')
* « U » mise à jour des paquets (''apt-get upgrade'')
* « g » (première fois) confirmer les changements
* « g » (deuxième fois) pour appliquer les changements
===== Motifs de recherche (utilisation avancée) =====
==== Présentation et syntaxe générale ====
Vous vous posez des questions du genre: //quels paquets ai-je installés depuis l'installation d'ubuntu//; //quels sont les paquets de langue française de mon bureau//; //quels sont les paquets non-officiels de mon système//; ou encore //quel est le programme de géométrie de la distribution edubuntu//? Si en plus vous voulez obtenir la réponse en une ligne de commande et que vous maîtrisez un peu l'anglais, alors cette partie est faite pour vous.
Voilà la définition (légèrement remaniée) donnée par le manuel d'aptitude :
«//Un motif de recherche consiste en une ou plusieurs conditions. Un paquet correspond à un motif s'il correspond à toutes ses conditions. Les conditions commencent généralement par le caractère tilde **~** suivi par un caractère indiquant le type de condition, puis par tout texte supplémentaire nécessaire à la condition.//»
La syntaxe générale de la commande de recherche est la suivante :
aptitude search motif
La commande:
$ aptitude search chaîne_de_caractères
... est un motif de recherche. Elle renvoie la liste des paquets contenant la chaîne de caractère //chaîne_de_caractères// dans leur nom. Nous allons voir qu'il est possible de créer des motifs beaucoup plus élaborés.
Mais avant cela il peut être utile de regarder le résultat d'une recherche :
$ aptitude search gimp
B extremetuxracer-gimp-dev - plugins for GIMP for easy development of ppracer courses
c flegita-gimp - Gnome Gimp scan plugin.
i gimp - The GNU Image Manipulation Program
p gimp-cbmplugs - plugins for The GIMP to import/export Commodore 64 files
i A gimp-data - Data files for GIMP
[...]
v gimp-help -
[...]
La ou les lettres renvoyées en début de ligne signifient :
^ Indicateur de l'état courant du paquet ^ correspondance ^
| i | le paquet est installé et toutes ses dépendances sont satisfaites |
| c | le paquet a été supprimé mais ses fichiers de configuration sont toujours présents sur le système |
| p | le paquet et tous ses fichiers de configuration ont été supprimés, ou le paquet n'a jamais été installé |
| v | le paquet est virtuel |
| B | le paquet a des dépendances cassées |
| A | le paquet a été automatiquement installé |
==== Tableau des motifs ====
**__Prérequis__**:
* « ! » sert à inverser une condition.
* Les parenthèses servent à clarifier un motif ou à introduire l'opérateur logique //ou//: « | ».
* Les motifs contenant un ou des points d'exclamation ou des parenthèses doivent impérativement être écrits entre 2 apostrophes « ' » ou être précédés par le caractère « \ »
* Quand les conditions //condition1// et //condition2// sont juxtaposés et non-séparées par un « | », alors ces 2 conditions doivent être satisfaites simultanément (équivalent de l'opérateur logique //et// en programmation)
* Pour utiliser une chaîne de caractères avec au moins un espace il faut l'écrire entre 2 « " ».
^ motif (formé d'une ou plusieurs conditions) ^ liste renvoyée ^
| //chaîne_de_caractères// \\ ou bien \\ ~n//chaîne_de_caractères// | paquets dont les noms contiennent la chaîne de caractères //chaîne_de_caractères// |
| '!~n//chaîne_de_caractères//' \\ ou bien \!~n//chaîne_de_caractères// | paquets dont les noms ne contiennent pas la chaîne de caractères //chaîne_de_caractères// |
| ~n//chaîne_de_caractères1//~n//chaîne_de_caractères2// | paquets dont les noms contiennent les chaînes de caractères //chaîne_de_caractères1// et //chaîne_de_caractères2// |
| '//chaîne_de_caractères1//%%|%%//chaîne_de_caractères2//' \\ ou bien \\ '(//chaîne_de_caractères1//%%|%%//chaîne_de_caractères2//)' | paquets dont les noms contiennent la chaîne de caractères //chaîne_de_caractères1// ou la chaîne de caractères //chaîne_de_caractères2// |
| %%^%%//chaîne_de_caractères// | paquets dont les noms commencent par la chaîne de caractères //chaîne_de_caractères// |
| //chaîne_de_caractères//$ | paquets dont les noms finissent par la chaîne de caractères //chaîne_de_caractères// |
| ~i//chaîne_de_caractères// | paquets installés dont les noms contiennent la chaîne de caractères //chaîne_de_caractères// |
| ~i'!//chaîne_de_caractères//' | paquets installés dont les noms ne contiennent pas la chaîne de caractères //chaîne_de_caractères// |
| '!~i//chaîne_de_caractères//' \\ ou bien \\ \!~i//chaîne_de_caractères// | paquets non-installés dont les noms contiennent la chaîne de caractères //chaîne_de_caractères// |
| ~v//chaîne_de_caractères// | paquets virtuels dont les noms contiennent la chaîne de caractères //chaîne_de_caractères// |
| ~b | dépendances non satisfaites, paquets cassés ou en conflit |
| ~c | paquets supprimés mais qui ont toujours un ou des fichiers de configuration sur le système |
| ~D~n%%^%%//nom_paquet//$ | paquets qui dépendent du paquet //nom_paquet// |
| ~R~n%%^%%//nom_paquet//$ | dépendances du paquet //nom_paquet// |
| ~d//description// | paquets qui contiennent le mot //description// dans leur description |
| ~s//section// | paquets correspondants à la section //section// \\ (liste des sections: //admin base comm devel doc editors electronics embedded games gnome graphics hamradio interpreters kde libdevel libs mail math metapackages misc net news oldlibs otherosfs perl python science shells sound tex text translations utils web x11//) |
| ~t//tache// | paquets correspondants à la tâche //tache// \\ (liste des tâches: //dns-server edubuntu-desktop edubuntu-desktop-addon edubuntu-desktop-kde edubuntu-dvd-live edubuntu-live edubuntu-server edubuntu-ship-addon gobuntu-desktop gobuntu-live kubuntu-desktop kubuntu-dvd-live kubuntu-kde4-desktop kubuntu-kde4-dvd-live kubuntu-kde4-live kubuntu-live lamp-server mail-server minimal openssh-server postgresql-server print-server samba-server standard ubuntu-desktop ubuntu-dvd-live ubuntu-live xubuntu-desktop xubuntu-live//) |
| ~o | paquets obolètes ou installés localement |
| ~U | paquets pouvant être mis-à-jour |
| ~E | paquets essentiels à la distributions |
| '~i!~O//ubuntu//!~v' | paquets non-officiels installés sur votre système |
| ~M | paquets automatiquements installés |
| '~N!~v' | nouveaux paquets (paquets de sources non-officielles ou paquets ajoutés dans les sources officielles après la sortie de la distribution) |
Il existe d'autres motifs (voir la partie [[aptitude#references|Références]]).
==== Exemples ====
- Paquets contenant la chaîne de caractères //firefox// et ne commençant pas par //mozilla// :
aptitude search '~nfirefox!~n^mozilla'
- Paquets de langue française de //kde// ou de //gnome// :
aptitude search '~nkde(-fr$|-fr-)' '~ngnome(-fr$|-fr-)'
- Logiciel(s) d'Agrégation de flux RSS en console :
aptitude search '(~d"rss aggregator")(~dterminal|~dconsole|~dcurse)'
- Logiciels vidéos installables:
aptitude search '!~i~sgraphics~dvideo!~n^lib'
- Logiciels de mathématiques faisant partie de la distribution edubuntu :
aptitude search ~smath~tedubuntu
- Logiciels de géométrie :
aptitude search '~smath~dgeometry!~n^lib'
- Paquets ayant été installés après installation de la distribution ubuntu et qui **en théorie** pourraient être supprimés sans souci.
aptitude search '~i!~M(!~tubuntu-desktop!~tminimal!~tstandard!~tprint-server)(!~n^linux-)'
La commande est aussi valable pour la distribution kubuntu en remplaçant //ubuntu-desktop// par //kubuntu-desktop//
il est possible de "nettoyer" le système de tout ce qui l'a alourdi depuis sont installation initiale, en identifiant les paquets avec la dernière commande, puis en les retirant sans casser des dépendances potentielles avec la commande :
//$ sudo aptitude markauto paquet-non-desire//
les taches (minimal, standard, print-server, etc.) sont accessibles avec la commande :
//$ tasksel --list-tasks//
Les possibilités sont infinies...
\\ //__Rq__//: les motifs de recherche peuvent aussi s'utiliser dans l'interface interactive d'aptitude (touche oblique « / » pour la recherche > entrez votre motif > continuer > touche « n » pour passer à l'occurence suivante).
===== Autre =====
Pour plus d'options, utilisez le menu à l'aide de Ctrl--t. Déplacez-vous à l'aide des flèches gauche et droite pour changer de menu et des flèches haut bas pour changer d'option dans le menu. Vous trouverez alors que vous pouvez annuler la dernière opération à l'aide de Ctrl--u, vous pouvez voir le //changelog// avec « C », et plein d'autres options utilisées à l'occasion. Le menu peut être utile si vous avez oublié sur quelle touche appuyer pour faire une action…
Il existe des options cachées qui rendent bavard aptitude et montrent l’humour des développeurs. Un [[wpfr>Easter_egg|Easter egg]] « œuf de Pâques » en français
Tapez sur un émulateur de console les commandes suivantes successivement :
aptitude moo
aptitude -v moo
aptitude -vv moo
aptitude -vvv moo
aptitude -vvvv moo
aptitude -vvvvv moo
aptitude -vvvvvv moo
===== Voir aussi =====
* Vous trouverez un manuel un peu plus complet en tapant "man aptitude" dans un [[:terminal]].
* Vous trouverez un manuel très détaillé et en français pour Aptitude dans le paquet « aptitude-doc-fr ». [[:tutoriel/comment_installer_un_paquet|Installer donc ce paquet]] **[[apt>aptitude-doc-fr]]** puis ouvrez le manuel qui se trouve maintenant installé dans votre système à cette adresse [[file:///usr/share/doc/aptitude/html/fr/index.html]]. Ouvrez la page [[file:///usr/share/doc/aptitude/html/fr/ch02s03.html]] pour en savoir plus sur les motifs de recherche. Bonne lecture !
* **(fr)** [[http://algebraicthunk.net/~dburrows/projects/aptitude/doc/fr/index.html|Manuel aptitude en ligne]]
* [[:projets/ecole/scripting/initiation_au_shell#les_expressions_regulieres|Expressions régulières]]
* **(fr)** [[http://bapoumba.free.fr/?p=16|aptitude]]
* [[https://forum.ubuntu-fr.org/viewtopic.php?pid=2589538|Cette discussion sur le forum ubuntu-fr]]
----
//Contributeurs : [[:utilisateurs:1Eric]], [[:utilisateurs:ste]], [[:utilisateurs:alteo_gange]], [[:utilisateurs:BeAvEr]] et d'autres//.