次のconfig内部のスクリプトcontrol.tar.gz
#!/bin/sh -e
. /usr/share/debconf/confmodule
db_fset mailadmin/database_Host seen false
db_clear
db_purge
db_input medium mailadmin/database_Host || true
db_go
db_get mailadmin/database_Host
echo "$RET" > /tmp/from_config_script.txt
exit 0
テンプレート付き
Template: mailadmin/database_Host
Type: string
Description: The database server's Host name or IP address.
(file templates)dpkg -iを使用してパッケージをインストールするとき、およびコマンドラインからも実行するときに、入力ダイアログが表示されません。
代わりに、このデフォルト値はテンプレートファイルの一部ではなくなりますが、「localhost」を/ tmp/from_config_script.txtに書き込みます。入力ポップアップが表示されたことはありません。入力ポップアップは、私が達成しようとしているものです。
apt-get purge mailadminでパッケージを削除しましたが、パージしてもこのデフォルト値はクリアされませんでした。私に何ができる?
簡単なソリューション:
db_input high ...
これは http://www.fifi.org ( http://www.fifi.org/doc/debconf-doc/tutorial.html のチュートリアルでは言及されていません=)、間接的な方法でのみ。
mediumの優先度は、ダイアログを表示するには低すぎます。しきい値の優先順位は、コンピューターのどこかに設定する必要があります。残念ながら、私はまだどこでわからない。しかし、少なくともダイアログを機能させる方法は知っています。
以前の回答に記載された提案に従った後、私の構成スクリプトはダイアログプロンプトなどを実行しません。次のマンページ記事でこのコメントを見つけました(セクションThe PostInstスクリプトを参照)
https://manpages.debian.org/testing/debconf-doc/debconf-devel.7.en.html
Db_ *コマンドを実行しない場合でも、postinstの最上部で常に/ usr/share/debconf/confmoduleをソースします。これは、構成スクリプトを実行する機会を確保するために必要です(詳細については、HACKSを参照してください)。
(ここでdb_ *コマンドを呼び出していない場合でも)postinstでconfmoduleのソースを取得すると、設定スクリプトが期待どおりに動作し始めました