DEB 包:带有 debconf 的 Shell 脚本不显示输入对话框

use*_*611 6 package-management dpkg debconf

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
Run Code Online (Sandbox Code Playgroud)

与模板

Template: mailadmin/database_host
Type: string
Description: The database server's host name or IP address.
Run Code Online (Sandbox Code Playgroud)

(文件模板)在我使用dpkg -i安装包以及从命令行运行它时不显示输入对话框。

相反,它将“localhost”写入/tmp/from_config_script.txt,即使此默认值不再是模板文件的一部分。我从未见过输入弹出窗口。输入弹出窗口是我想要实现的。

我用apt-get purge mailadmin删除了包,但即使 purge 也没有清除这个默认值。我能做什么?

use*_*611 5

简单的解决方案:

db_input high ...
Run Code Online (Sandbox Code Playgroud)

这在http://www.fifi.org ( http://www.fifi.org/doc/debconf-doc/tutorial.html )的教程中没有提到,只是间接提到。

中等优先级对于显示对话框来说太低了。必须在计算机的某处设置阈值优先级。不幸的是,我仍然不知道在哪里。但至少我知道如何使对话框工作。