web-dev-qa-db-fra.com

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

J'essaie de construire un Ansible Playbook pour déployer des serveurs Ubuntu 12.04 sur Linode, mais mon problème semble être celui d'Ubuntu. Lorsque je lance différentes combinaisons d’apt-get ou d’aptitude, j’obtiens toujours le dialogue suivant auquel je dois répondre.

Package configuration dialog

J'aimerais que la réponse soit donnée à partir de la ligne de commande afin qu'elle n'interrompe pas 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\)/\1 || true/g' \
    /var/lib/dpkg/info/iptables-persistent.postinst; \
Sudo aptitude install iptables-persistent
28
Brian Lyttle

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

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
33
Lorin Hochstein

Correction/ajustement mineur de la réponse Ansible de @ lorin-hochstein à installer iptables-persistent de manière non interactive 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

0
OpenITeX

Vous avez manqué -q. Essayer:

Sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent
0
Germar

Je pense que vous devriez envisager de faire une base de données debconf pour automatiser tout le processus. Ceci est un processus non intuitif et qui nécessite beaucoup de travail, comme reconditionner vos propres fichiers deb, pour le faire fonctionner. Il est appelé "préconfiguration debconf" .

Il y a plusieurs exemples dans wiki de Debian sur la façon de le faire:

En fonction du temps et des circonstances, vous en choisirez un (c'est pourquoi je ne suis pas entré dans les détails). Prenez-en un qui vous semble utile et restez-y jusqu'au bout.

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

0
Braiam