Triggers dpkg:如何使用触发器?

Triggers dpkg:如何使用触发器?,triggers,debian,dpkg,debhelper,Triggers,Debian,Dpkg,Debhelper,我编写了一个小型cdn服务器,如果池中安装了新的东西(池内容包),它将重建池注册表 与每个池内容包调用cdn服务器的init.d不同,我希望使用触发器。而不是在安装完所有包后,在安装运行结束时只重新启动服务器一次 要在支持debhelper的软件包中使用触发器,我必须做些什么?您需要的是dpkg触发器 使用debhelper构建debian软件包的一个解决方案是: 步骤1) 创建文件debian/.triggers(用服务器包的名称替换) 步骤1a) 定义监视池目录的触发器。文件的内容将是: i

我编写了一个小型cdn服务器,如果池中安装了新的东西(池内容包),它将重建池注册表

与每个池内容包调用cdn服务器的init.d不同,我希望使用触发器。而不是在安装完所有包后,在安装运行结束时只重新启动服务器一次


要在支持debhelper的软件包中使用触发器,我必须做些什么?

您需要的是dpkg触发器

使用debhelper构建debian软件包的一个解决方案是:

步骤1)

创建文件
debian/.triggers
(用服务器包的名称替换

步骤1a)

定义监视池目录的触发器。文件的内容将是:

interest/path/to/my/pool

步骤1b)

但您也可以定义一个命名触发器,它必须显式触发(请参见步骤3)

文件内容:

利息cdn池已更改

更改的触发器cdn池的名称是免费的。你想拿什么就拿什么

步骤2)

将触发器的处理程序添加到文件
debian/.postinst
(用服务器包的名称替换

例如:

#!/bin/sh

set -e

case "$1" in
    configure)
    ;;

    triggered)
        #here is the handler 
        /etc/init.d/<serverPackageName> restart
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

#DEBHELPER#

exit 0
#/垃圾箱/垃圾箱
set-e
案件“$1”
配置)
;;
触发)
#这是处理程序
/etc/init.d/重新启动
;;
中止升级|中止删除|中止取消配置)
;;
*)
echo“使用未知参数\`1'”调用postinst>&2
出口1
;;
以撒
#去骨助手#
出口0
替换为服务器包的名称

步骤3)(仅适用于命名触发器,步骤1b))

在每个内容包中添加文件
debian/.triggers
(用内容包的名称替换

文件内容:

激活cdn池已更改

对步骤1中定义的触发器使用相同的名称

更详细的信息 我能找到的dpkg触发器的最佳描述是“”。相应的git存储库以及您可以在此处获得的示例:


git克隆git://anonscm.debian.org/users/seanius/dpkg-triggers-example.git

在大多数情况下,您确实需要等待,不要将激活触发器的包标记为需要等待处理触发器的包才能返回到配置状态。
anonscm
链接不再工作。AFAICS称,就目前而言,该报告似乎在存档,而考古副本似乎在存档的报告中,似乎没有相关内容