web-dev-qa-db-ja.com

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

LinodeにUbuntu 12.04サーバーを展開するためにAnsible Playbookを作成しようとしていますが、私の問題は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
28
Brian Lyttle

パッケージをインストールする前に、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
33
Lorin Hochstein

タスクが正常に実行するためにSudo特権を必要とする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
OpenITeX

-qを見逃しました。試してください:

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

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

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

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

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

0
Braiam