Installation automatique d'un paquet Debian
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 valeursnoninteractive
: 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