Installer des paquets avec APT sans intervention

Installer des paquets avec APT sans intervention
Crédit photo : Kristopher Allison sur Unsplash

Lorsqu’on scripte l’installation d’un serveur, l’appel de APT peut déclencher des questions interactives sur certains paramètres.

Il est bien sûr posssible de les ignorer avec les flags --quiet accompagné de --assume-yes ou --assume-no pour avoir des réponses automatiques mais dans certains cas, ce n’est pas satifaisant. Par exemple, lors de l’installation du paquet opensmtpd, il est nécessaire de renseigner l’adresse à laquelle faire suivre le courrier de root ainsi que le nom du serveur de mail.

Pour fournir automatiquement ces informations à l’installeur, il suffit de renseigner la base de données des questions de APT avant de lancer la commande d’installation. Cela se fait facilement à l’aide de la commande debconf-set-selections. Cette commande prend en entrée (sur stdin) : le nom du paquet, le nom de la “question” et la réponse à fournir.

Par exemple :

echo "opensmtpd opensmtpd/root_address string admin@mondomaine.fr" | debconf-set-selections
echo "opensmtpd opensmtpd/mailname string smtp.mondomaine.fr" | debconf-set-selections
apt-get install opensmtpd

Dans cet exemple, on renseigne les éléments suivants :

  • la question root_address (qui correspond à l’adresse à laquelle sont renvoyés les emails destinés à l’utilisateur root)
  • le nom de la machine pour le serveur SMTP

Pour connaitre la liste des questions possibles pour un paquet donné, il faut utiliser la commande debconf-show <nom du paquet>.

Par exemple :

root@serveur# debconf-show opensmtpd
* opensmtpd/root_address: admin@mondomaine.fr
opensmtpd/mailname: 

Les lignes qui commencent par une étoile sont celles qui ont été renseignées.