Tout d'abord pour essayer de cerner ce qu'apportent les paquets recommandés et les paquets suggérés, prenons un exemple. Pour le paquet gimp, les paquets recommandés et suggérés sont les suivants :

$ apt-cache show gimp | grep -Ee 'Recommends|Suggests'
Recommends: gimp-gnomevfs | gimp-libcurl, gimp-python (>= 2.4.0-1)
Suggests: gimp-help-en | gimp-help, libgimp-perl, gimp-data-extras, libasound2, ghostscript

La commande apt-cache munie de l'option show va chercher des informations diverses sur un paquet fourni en argument (version, dépendances, description, etc.), alors que la commande grep permet de filtrer le résultat de la commande précédente sur les mots clefs Recommends et Suggests. Pour le GIMP, on nous recommande donc d'installer aussi :

  • gimp-gnomevfs ou gimp-libcurl qui permettent tous deux d'ouvrir des images hébergées sur des serveurs Internet via leur URL
  • gimp-python qui permet d'utiliser voire d'écrire des extensions en langage Python pour le GIMP

Concernant les suggestions, on a :

  • les aides en ligne gimp-help-en ou gimp-help
  • libgimp-perl pour utiliser ou écrire des extensions en langage Perl
  • des brosses, palettes et dégradés supplémentaires avec gimp-data-extras

Les deux dernières suggestions libasound2 et ghostscript ont un rôle plus mystérieux puisqu'il s'agit d'une bibliothèque audio (ALSA) et d'un interpréteur Postcript/PDF. On notera tout de même qu'il est vraisemblable que la documentation et que les brosses, palettes et dégradés supplémentaires prennent en effet de la place sur le disque. D'après apt-cache show, chacun de ces paquets pèserait dans les 8 Mo une fois installé.

Supposons maintenant que nous souhaitions installer le paquet cron-apt[1] sans les paquets recommandés ni les suggérés. Signalons tout d'abord que si vous faites l'opération dans une version graphique du gestionnaire de paquet, celui-ci devrait vous indiquer les paquets supplémentaires qu'il souhaite installer mais, au moins dans synaptic, vous ne pourrez pas les refuser. En ligne de commande, ça donne ceci :

$ sudo apt-get install cron-apt
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
  bsd-mailx exim4 exim4-base exim4-config exim4-daemon-light mailx
Paquets suggérés :
  eximon4 exim4-doc-html exim4-doc-info libmail-spf-query-perl swaks
Les NOUVEAUX paquets suivants seront installés :
  bsd-mailx cron-apt exim4 exim4-base exim4-config exim4-daemon-light mailx
0 mis à jour, 7 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 2000ko dans les archives.
Après cette opération, 4305ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?

Interrompons donc l'installation en appuyant sur la touche n et reprenons-là en ajoutant l'option miracle -o APT::Install-Recommends=false dont nous expliciterons la provenance plus loin :

$ sudo apt-get install -o APT::Install-Recommends=false cron-apt
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Paquets recommandés :
  mailx
Les NOUVEAUX paquets suivants seront installés :
  cron-apt
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 25,0ko dans les archives.
Après cette opération, 98,3ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?

Cette fois on ne nous « force » pas à installer des paquets qu'on n'a pas demandés, ce qui bien sûr peut nécessiter de mieux connaître le rôle de chacun d'eux par la suite… Il ne vous aura probablement pas échappé non plus que cron-apt ne recommande que mailx dans les informations rapportées. Pourquoi alors a-t-il voulu nous faire installer exim4 et consorts à la première tentative ?

La réponse est que seuls les paquets recommandés mais non installés sont rapportés. Or cron-apt recommande d'autres paquets qui sont déjà installés dans mon cas :

$ apt-cache show cron-apt | grep -Ee 'Recommends|Suggests'
Recommends: liblockfile1, mailx, cron

Et il se trouve que cron recommande exim4 :

$ apt-cache show cron | grep -Ee 'Recommends|Suggests'
Recommends: exim4 | postfix | mail-transport-agent
Suggests: anacron (>= 2.0-1), logrotate, lockfile-progs, checksecurity

Vous comprenez donc maintenant quel intérêt il peut y avoir à ne pas vouloir installer systématiquement les paquets recommandés ou suggérés : les recommandés des recommandés sont également installés, et ainsi de suite pour toutes les dépendances et recommandations en cascade… Remarquez au passage que c'est le premier des trois paquets recommandés parmi exim4, postfix et mail-transport-agent qui aurait été installé, puisqu'un seul des trois suffit à satisfaire les recommandations.

Maintenant, sur une machine peu fournie en espace disque, il est évident que nous avons intérêt à désactiver à la fois les paquets suggérés et recommandés. Au contraire si vous avez du disque à ne plus savoir qu'en faire, vous pourrez vouloir activer les deux. Après tout avec Linux, c'est très dur d'avoir un système qui prend plus de 10 Go ! ;-) Nous allons donc voir comment faire ceci de manière systématique.

Pour les outils de gestion des logiciels de la série apt, donc notamment apt-get et synaptic, tout se passe dans le répertoire de configuration /etc/apt/apt.conf.d/. Ce répertoire contient des fichiers textes qui définissent de nouvelles valeurs pour les paramètres APT, comme celui que nous avons utilisé plus haut, selon la syntaxe indiquée dans la page de manuel apt.conf[2] :

$ man apt.conf

Cette même page de manuel nous explique que les options fournies dans la ligne de commande apt-get comme précédemment sont prioritaires sur celles des fichiers de configuration, ou encore que le fichier d'exemple /usr/share/doc/apt/examples/configure-index.gz contient la liste exhaustive des options et leur valeur par défaut. Étant donné qu'il est compressé, on le consulte après décompression par gunzip :

$ gunzip -c /usr/share/doc/apt/examples/configure-index.gz | less

Une autre solution consiste à installer l'utilitaire most qui sait visualiser des fichiers compressés directement. On n'a alors plus qu'à faire :

$ most /usr/share/doc/apt/examples/configure-index.gz

C'est donc dans ce fichier d'exemple qu'on retrouvera les deux options qui contrôlent l'installation ou non des paquets recommandés et suggérés. Il n'y a donc plus qu'à créer dans le répertoire de configuration un nouveau fichier de configuration qu'on appellera par exemple 90recommand-suggest :

$ sudo nano /etc/apt/apt.conf.d/90recommand-suggest

Dans l'éditeur en mode console qui s'ouvre (vide) une fois le mot de passe pour sudo[3] renseigné, vous n'aurez qu'à copier / coller avec le bouton milieu de la souris le texte suivant :

APT 
{
  Install-Recommends "false";
  Install-Suggests "false";
};

C'est tout ! Vous voilà parti dans la quête du système le plus économe en place ou au contraire le plus fourni[4] !

Notes

[1] ce paquet sert à automatiser les mises à jour du système

[2] n'oubliez pas qu'on sort des pages de manuel avec la touche Q !

[3] cette commande sert à se faire passer pour l'administrateur

[4] pas le plus gourmand en place, parce que sur ce point, on sait que OS X et Windows ont une très grande longueur d'avance :-p