Debian 如何从维护者脚本中优雅地退出deb安装?

Debian 如何从维护者脚本中优雅地退出deb安装?,debian,deb,debconf,Debian,Deb,Debconf,我正在构建一个deb,它使用debconf询问用户是否真的想要安装它(简单的布尔模板)。什么是优雅地退出安装的最佳方式,以便用户可以在以后获得安装包名称,并获得一个新的配置菜单 我当前的解决方案是检查preinst脚本中的值,如下所示: db_get pkg-name/confirm_install if [ "$RET" = "false" ]; then db_purge exit 1 fi exit 1对于防止apt get继续并认为安装了包是必要的,db\u清除

我正在构建一个deb,它使用debconf询问用户是否真的想要安装它(简单的布尔模板)。什么是优雅地退出安装的最佳方式,以便用户可以在以后
获得安装包名称
,并获得一个新的配置菜单

我当前的解决方案是检查
preinst
脚本中的值,如下所示:

db_get pkg-name/confirm_install
if [ "$RET" = "false" ]; then
      db_purge
      exit 1
fi
exit 1
对于防止
apt get
继续并认为安装了包是必要的,db\u清除允许用户使用干净的debconf db重新安装。但是,它抛出了一个严重的错误:

dpkg: error processing pkg-name (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 pkg-name
E: Sub-process /usr/bin/dpkg returned an error code (1)

有没有更好的方法来处理从deb maintainer脚本中退出安装的问题?

我认为没有。从dpkg的角度来看,用户要求安装软件包,如果最终没有安装,则需要给出尽可能多的解释,说明没有安装,以及为什么没有安装


相反,在用户运行一个特殊的“重新配置”脚本(或标准的
dpkg-reconforme$yourpgg
)之前,您可以允许软件包干净地完成安装,但不启用软件包提供的任何额外行为。

恐怕您是对的,这是有意义的。经过多次搜索,我似乎找不到任何方法来做这件事。我会等几天,直到我接受你的回答,看看是否还有其他人有想法。怎么样
db\u获取pkg名称/confirm\u安装| true