インストール中にapt-get / aptitudeがダイアログを表示しないようにするにはどうすればよいですか?


28

LinodeにUbuntu 12.04サーバーを展開するためにAnsible Playbookを作成しようとしていますが、問題はUbuntuのようです。apt-getまたはaptitudeのさまざまな組み合わせを実行すると、応答する必要がある次のダイアログが常に表示されます。

パッケージ構成ダイアログ

自動展開を中断しないように、コマンドラインからこれに回答してほしい。何か案は?

私の現在のコマンドは以下です。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

回答:


34

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

@ブライアムsudoを追加
ロリンホッホ

iptables-persistent iptables-persistent/autosave_v4 boolean trueも追加したいかもしれません。
Braiam

@ブライアムv4を追加
ロリンホッホ

0

あなたは逃した-q。試してください:

sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent

1
それは12.04で仕事しませんでした:(パッケージはちょうど環境変数を無視する場合、私はすでに私の不思議ので、他のフィックスアップをしなければならない。
ブライアン・リトル容疑

1
投稿する前に、12.04デスクトップvmでこれをテストしました。多分それはあなたの12.04サーバーに関連していますか?
ジャーマー

Debianは同じメッセージを表示します...
Braiam

0

すべてのプロセスを自動化するには、debconfデータベースの使用を検討する必要があると思います。これは直感的ではないプロセスであり、独自のdebファイルを再パッケージ化するなど、多くの作業が必要であり、「debconf preseeding」と呼ばれます。

Debian wikiにはこれを行う方法に関するいくつかの例があります

時間と状況に応じて、1つを選択します(その理由について詳しく説明しませんでした)。役に立つと思われるものを取り、最後まで使い続けます。

問題が発生した場合は、別の質問をして、何をしようとしているか、どのように計画しているのかを詳しく説明してください。


0

タスクがsudo-privilgesを正常に実行することを要求するiptables-persistentを非対話的にインストールするための@ lorin-hochsteinのAnsibleベースの回答に対するマイナーな修正/調整(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

Dockerイメージを構築する場合:

RUN echo iptables-persistent iptables-persistent/autosave_v4 boolean true | debconf-set-selections \
  && echo iptables-persistent iptables-persistent/autosave_v6 boolean true | debconf-set-selections
RUN apt-get install -y iptables-persistent
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.