dpkg
can be instructed not to ask for confirmation when replacing a configuration file (with the --force-confdef --force-confold
options). Interactions can, however, have three other sources: some come from APT itself, some are handled by debconf
, and some happen on the command line due to package configuration scripts (sometimes handled by ucf).
debconf
からの入力要求に自動回答する設定はさらに詳細な説明が必要です。設計当初から debconf
はユーザに対する質問の妥当性と分量を調整し、同時に質問の表示方法を制御することを目標に設計されました。そのため、debconf データベースに質問を登録する際には各質問に対して表示の妥当性を制御するための優先度を設定する必要があります。現在の優先度が質問に設定された優先度を超える場合、その質問が表示されます。debconf
はユーザが回答しなかった質問は、(パッケージメンテナが定義した) デフォルトと同様に回答されたと仮定します。
noninteractive
out of the choices, all user interaction is disabled. If a package tries to display an informative note, it will be sent to the administrator by email.
debconf
を再設定するには、debconf パッケージから提供される dpkg-reconfigure
ツールを使ってください。debconf
を再設定するコマンドは dpkg-reconfigure debconf
です。ここで設定した値は、必要ならば環境変数を使って一時的に上書きできる点に注意してください (たとえば、DEBIAN_FRONTEND
環境変数は、debconf(7) マニュアルページで説明されている通り、インターフェースを制御します)。
dpkg
が実行する設定スクリプトで、これは制御することが最も難しいものです。残念なことに設定スクリプトからの入力要求に自動回答するための標準的な解決策はありませんし、無回答以外に良い解決策はありません。
command </dev/null
のように標準入力を /dev/null
の空内容にリダイレクトすることで標準入力を抑制するか、プログラムに改行文字を送り続けるかです。どちらの解決策も完全に信頼できるわけではありませんが、通常はこれらの解決策を取ればデフォルト回答が使われることになります。なぜなら、多くのスクリプトでは、応答のない場合はデフォルト回答を選択したことになるからです。