为什么我的 debian/config 脚本在安装过程中没有被调用?

Why is my debian/config script not called during installation?

我想在我的 debian 包中使用 debconf 来获取一些用户输入。我有一个 debian/config 文件:

#!/bin/sh
set -e
. /usr/share/debconf/confmodule
db_fset dn-native-drivers/choose_port seen false
db_clear
db_purge
db_input critical dn-native-drivers/choose_port || true
db_go

和一个 debian/templates 文件:

Template: dn-native-drivers/choose_port
Type: string
Default: 50
Description: Which vcom-port should be used?
 The port can be changed later in /etc/dn with the property
 vcom.nativePort

当我自己调用配置脚本时,它只是在做我想做的事情(显示 debconf 问题)但是当我用 dpkg-buildpackage -us -uc 构建包然后用 dpkg -i packagename 安装它时未显示问题。我检查了配置和模板文件是否在 control.tar.gz 中并且它们在那里。如果重要的话,我使用 raspbian。为什么我的控制脚本在安装过程中没有被调用?

好的,我注意到调用了配置脚本(使用对 stderr 的 echo 语句) 使用调试模式:

DEBCONF_DEBUG=developer
export DEBCONF_DEBUG

我可以指出问题是找不到模板。问题在于:

db_clear
db_purge

我的目的是确保 debconf 没有保存 已经是配置值,但是这个语句被删除了 以前定义的模板定义。删除它们后,对话框会在安装过程中打开。

如果您想在安装过程中被问到问题,db_fset dn-native-drivers/choose_port seen false 行似乎很重要。

否则我遇到的问题是它只在 dpkg-reconfigure 期间提出问题。