Как я могу запретить apt-get / aptitude показывать диалоги во время установки?

Я пытаюсь создать Ansible Playbook для развертывания некоторых серверов Ubuntu 12.04 на Linode, но моя проблема, похоже, связана с Ubuntu. Когда я запускаю разные комбинации apt-get или aptitude, я всегда получаю следующее диалоговое окно, на которое я должен ответить.

Package configuration dialog

Мне бы хотелось, чтобы на это отвечали из командной строки, чтобы это не прерывало автоматическое развертывание. Любые идеи?

Мои текущие команды ниже. Обратите внимание, что я пытаюсь установить 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
27
задан 15.05.2020, 17:41

4 ответа

Попробуйте использовать debconf-set-selections для установки значения перед установкой пакета:

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

Или через 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
0
ответ дан 15.05.2020, 17:42
  • 1
    @Braiam я добавил sudo – linkinmedo 15.05.2020, 17:42
  • 2
    Вы могли бы хотеть добавить iptables-персистентный iptables-persistent/autosave_v4 boolean true также. – false 15.05.2020, 17:43
  • 3
    @Braiam Добавленный v4 – Paulo Moura 15.05.2020, 17:43

Незначительное исправление / корректировка ответа на основе Ansible @ lorin-hochstein для неинтерактивной установки iptables-persistent, в которой для выполнения задачи требуется привилегия sudo (добавлена ​​строка 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
ответ дан 15.05.2020, 17:42

Вы пропустили -q. Попробуйте:

sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent
0
ответ дан 15.05.2020, 17:42
  • 1
    Это didn' t работают над 12,04: (Я уже должен сделать другой fixup, поэтому интересно, игнорирует ли пакет просто переменную среды. – Ibrahim Ali 15.05.2020, 17:43
  • 2
    Я протестировал это в vm с 12.04 рабочими столами перед регистрацией. Таким образом, возможно, it' s связанный с Вашим с 12.04 серверами? – Mike 15.05.2020, 17:43
  • 3
    Debian показывает то же сообщение... – LukStorms 15.05.2020, 17:43

Я думаю, вам стоит подумать о создании базы данных debconf для автоматизации всего процесса. Это неинтуитивный процесс и требует много работы, например, переупаковки ваших собственных файлов deb, чтобы заставить его работать, и называется «предварительное задание debconf» .

В вики Debian есть несколько примеров того, как это сделать:

В зависимости от времени и обстоятельств вы выберете один (поэтому я не стал вдаваться в подробности). Возьмите тот, который кажется полезным, и придерживайтесь его до конца.

Если у вас возникнут проблемы, задайте другой вопрос, подробно описав, что вы пытаетесь сделать, и как вы планируете это сделать.

0
ответ дан 15.05.2020, 17:43

Теги

Похожие вопросы