像 debconf 一样扩展 postinst 脚本的官方方法是什么?

像 debconf 一样扩展 postinst 脚本的官方方法是什么?

我有一个项目名称snaplogger我使用它将日志发送到文件、系统日志、控制台或远程计算机(syslogd 的功能与它类似,但还具有更多功能)。

每当另一个项目想要使用时snaplogger,它都应该创建一个日志子目录。例如,我的传播者项目是这样做的:

PACKAGENAME=communicatord
USERNAME=communicatord
GROUPNAME=communicatord

[...snip...]

LOGDIR=/var/log/${PACKAGENAME}
LOGFILE=${LOGDIR}/${PACKAGENAME}.log
mkdir -p ${LOGDIR}
touch ${LOGFILE}
chown ${USERNAME}:${GROUPNAME} ${LOGFILE}
chmod 640 ${LOGFILE}

我想做的是将最后 6 行移到项目snaplogger提供的脚本中。然后communicatord只需使用脚本定义的函数即可。可能是这样的:

prepare-snaplogger ${PACKAGENAME} ${USERNAME} ${GROUPNAME} true

最后的意思true是我们还想要一个安全日志子文件夹。

由于 postinst 脚本以 root 身份运行,它可以创建所有这些,而服务将以自身身份运行(即我有一个communicatord用户),因此它将无法创建这些文件夹。

我的问题是:在 Debian 和/或 Ubuntu 中是否有提供此类扩展脚本的记录方式?

我的想法是每个项目都应该在 下提供这样的内容/usr/share/<project-name>/[debconf/?]。但也许我们可以使用该/var/share/debconf/...文件夹?


因此,我需要在communicatord.postinst脚本开头附近添加一行来获取该文件,如下所示:

. /usr/share/snaplogger/debconf

相关内容