1

我正在构建一个 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 维护者脚本中退出安装?

4

1 回答 1

1

我不相信有。从 dpkg 的角度来看,用户要求安装软件包,如果最终没有发生,则需要提供尽可能多的解释以表明它没有发生以及为什么没有发生。

相反,您可能有可能允许包干净地完成安装,但不启用包提供的任何额外行为,直到用户运行特殊的“重新配置”脚本(或标准dpkg-reconfigure $yourpkg)。

于 2016-07-12T14:32:37.427 回答