下列配置里面的脚本控制文件
#!/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.
(文件模板)在我使用以下方式安装包时不显示输入对话框dpkg-i 命令,当我从命令行运行它时也是如此。
相反,它会将“localhost”写入/tmp/from_config_script.txt,即使此默认值不再是模板文件的一部分。我从来没有看到过输入弹出窗口。输入弹出窗口正是我想要实现的。
我删除了包apt-get 清除邮件管理员,但即使清除也没有清除此默认值。我该怎么办?
答案1
简单的解决方案:
db_input high ...
教程中没有提到这一点http://www.fifi.org(http://www.fifi.org/doc/debconf-doc/tutorial.html) 只能以间接的方式体现。
优先事项中等的太低,无法显示对话框。阈值优先级必须在计算机上的某个地方设置。不幸的是,我仍然不知道在哪里。但至少我知道如何使对话框工作。
答案2
按照前面答案中列出的建议操作后,我的配置脚本仍然无法运行,没有对话框提示等。我终于在以下手册页文章中偶然发现了这条评论(请参阅 PostInst 脚本部分)
https://manpages.debian.org/testing/debconf-doc/debconf-devel.7.en.html
始终在 postinst 顶部 source /usr/share/debconf/confmodule,即使您不会在其中运行任何 db_* 命令。这是确保配置脚本有机会运行所必需的(有关详细信息,请参阅 HACKS)。
一旦我在 postinst 中获取了 confmodule(尽管我在这里没有调用 db_* 命令),我的配置脚本就开始按预期工作了