我正在构建一个deb使用debconf来询问用户是否真的想要安装它(简单的布尔模板)。退出安装的最佳方法是什么,以便以后用户可以apt-get install pkg-name
并获得新的配置菜单?
我目前的解决方案是检查preinst
脚本中的值,如下所示:
db_get pkg-name/confirm_install
if [ "$RET" = "false" ]; then
db_purge
exit 1
fi
exit 1
是保持apt-get
继续并认为安装软件包所必需的,而db_purge允许用户使用干净的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维护者脚本中退出安装?
答案 0 :(得分:1)
我不相信有。从dpkg的角度来看,用户要求安装软件包,如果最终没有发生,则需要尽可能多地给出解释,说明它没有发生,为什么不发生。
相反,您可能有必要允许程序包完全安装,但不启用程序包提供的任何额外行为,直到用户运行特殊的“重新配置”#34;脚本(或标准dpkg-reconfigure $yourpkg
)。