Installation automatique d'un paquet Debian

De Wiki doc

Révision datée du 18 novembre 2023 à 21:09 par Ycharbi (discussion | contributions) (→‎Usage pratique : Ajout d'une bannière d'information listant les valeurs possibles de DEBIAN_FRONTEND)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Lors de l'installation de paquets avec APT, certain d'entre eux posent des questions via une interface ncurses, ce qui gène leur installation via des scripts (et ceux, même avec l'option -y). Pour y remédier, il faut soit désactiver complètement cette interaction ncurses afin d'utiliser les valeurs par défaut ou soit configurer debconf afin de préciser nous même les paramètres à appliquer par défaut pour un paquet.

Désactivation de l’interaction

Il faut définir la variable DEBIAN_FRONTEND comme suit

export DEBIAN_FRONTEND=noninteractive

et la réactiver quand on en a plus besoin

unset DEBIAN_FRONTEND

Usage pratique

export DEBIAN_FRONTEND=noninteractive
apt -y install foopackage
apt -y install barpackage
unset DEBIAN_FRONTEND

INFORMATION

La variable DEBIAN_FRONTEND supporte les valeurs noninteractive : ne pose aucune questions et utilise les valeurs par défaut ; dialogue : pose les questions via une interface ncurses (valeur par défaut) ; texte : pose les questions via une interface teste simple ; gtk : pose les questions via une interface graphique GTK (nécessite les paquets cdebconf-gtk et gkdebconf).

Configuration de debconf

Pour cette partie, il va falloir passer des arguments au programme debconf (qui définit les variables à passer à DPKG lors des installations). Afin de connaître les valeurs possibles, il faut installer le paquet debconf-utils (inutile si vous connaissez les valeurs à l'avance)

apt install debconf-utils

La commande debconf-get-selection permet de lister l'ensemble des variables possibles. On peut l'utiliser avec un pipe pour filtrer ce qui nous intéresse. Personnellement, je l'utilise avec less et sa fonction de recherche / afin de trouver ce qui m'intéresse.

debconf-get-selection | less

Pour définir une valeur personnalisé, on l'utilise comme suit (exemple avec Wireshark)

echo "wireshark-common wireshark-common/install-setuid boolean true" | debconf-set-selections

Il suffit ensuite d'installer le paquet (ici wireshark) et constater que le paquet ne pose plus la question qui faisait chier

apt install -y wireshark

Source