Comment puis-je empêcher apt-get / aptitude d'afficher des boîtes de dialogue pendant l'installation?

27

J'essaie de créer un Playbook Ansible pour déployer des serveurs Ubuntu 12.04 sur Linode, mais mon problème semble être un Ubuntu. Lorsque je lance différentes combinaisons d'apt-get ou d'aptitude, j'obtiens toujours la boîte de dialogue suivante à laquelle je dois répondre.

Je voudrais que cela réponde à partir de la ligne de commande pour ne pas interrompre le déploiement automatique. Des idées?

Mes commandes actuelles sont ci-dessous. Notez que j'essaie de définir DEBIAN_FRONTEND:

#!/bin/bash

echo 'DEBIAN_FRONTEND="noninteractive"' >> /etc/profile
echo 'DEBIAN_FRONTEND="noninteractive"' >> ~/.profile

source /etc/profile
source ~/.profile

# This next line is the one that pops up the dialog
sudo aptitude -y install iptables-persistent

# Need this to fix an issue with the package post-install (this works fine.)
sudo sed \
    -i 's/\(modprobe -q ip6\?table_filter\)/ || true/g' \
    /var/lib/dpkg/info/iptables-persistent.postinst; \
sudo aptitude install iptables-persistent
    
posée Brian Lyttle 31.08.2013 - 20:35
la source

4 réponses

32

Essayez d'utiliser debconf-set-selections pour définir la valeur avant d'installer le package:

echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections
echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections

Ou, via ansible

- name: prevent the iptables-peristent install dialog
  debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true
  with_items:
  - iptables-persistent/autosave_v4
  - iptables-persistent/autosave_v6
- name: install iptables-persistent
  apt: name=iptables-persistent
    
réponse donnée Lorin Hochstein 03.09.2013 - 14:59
la source
0

Vous avez manqué -q . Essayez:

sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent
    
réponse donnée Germar 31.08.2013 - 21:12
la source
0

Je pense que vous devriez envisager de créer une base de données debconf pour automatiser tout le processus. Ceci est un processus non intuitif et nécessite beaucoup de travail, comme le remballage de vos propres fichiers deb, pour le faire fonctionner et s'appelle "debconf preseeding" .

Il existe plusieurs exemples dans le wiki Debian sur la manière de procéder:

En fonction de l'heure et des circonstances, vous en sélectionnerez une (c'est pourquoi je ne suis pas entré dans les détails). Prenez-en un qui vous semble utile et respectez-le jusqu'à la fin.

Si vous rencontrez des problèmes, posez une autre question en détaillant ce que vous essayez de faire et comment vous comptez le faire.

    
réponse donnée Braiam 03.09.2013 - 00:48
la source
0

Correction / ajustement mineur à la réponse de @ lorin-hochstein basée sur Ansible pour installer de manière non interactive iptables-persistent dans laquelle la tâche nécessite l'exécution des privilèges sudo (ajout de la ligne become: yes ): ## Prevent iptables-persistent pckgs install dialog (debconf-set-selections) - name: prevent the iptables-peristent install dialog become: yes debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true with_items: - iptables-persistent/autosave_v4 - iptables-persistent/autosave_v6 - name: install iptables-persistent apt: name=iptables-persistent

    
réponse donnée Jukka Aaltonen 14.10.2016 - 11:20
la source

Lire d'autres questions sur les étiquettes