我应该覆盖debhelper对init系统的使用吗?

时间:2015-12-17 18:48:11

标签: packaging debian-based debhelper

我正在尝试使用systemd脚本构建debian软件包,但我并不了解最佳方法。

我的第一个问题是,我应该使用--with=systemd选项(并覆盖dh_systemd_enabledh_systemd_start),还是使用dh_installinit选项--name ?因为两者似乎做同样的事情。

1 个答案:

答案 0 :(得分:0)

您的--with=systemd调用肯定需要dh

至于你需要哪种覆盖组合,取决于它。

听起来你只需要包含systemd单元,所以你不需要覆盖任何东西。

由于您的问题没有太多上下文,我将列出一些用于何时覆盖每个systemd debhelpder的用例。

何时使用override_dh_systemd_enable:

  • 如果要在通常在安装时禁用服务的系统上覆盖您的启用服务(通常这是不是派生自Debian的任何Linux风格)
  • 如果要在通常在安装时启用服务的系统上覆盖您的禁用服务(通常这是Debian或 派生自Debian的任何Linux风格)
  • 如果你的Debian软件包中有多个systemd单元,你需要启用它们
  • 如果debian软件包中的主systemdunit被命名为 package-name.service 以外的其他名称,则需要启用/禁用

Manual page for dh_systemd_enable

何时使用override_dh_systemd_start:

  • 如果要在通常在安装时启动服务的系统上覆盖您的服务 NOT start on install or boot (通常这是Debian或 的任何Linux风格>源自Debian)
  • 如果您希望systemd设备在debian软件包升级时停止或重新启动
  • 如果您希望systemd单元 not 停止,直到debian软件包升级完成(这对于升级期间可能没有长时间停机的守护程序非常有用)< / LI>
  • 如果要撤消在debian软件包升级完成之前不要停止操作
  • 如果你的debian软件包中的主系统单元被命名为 package-name.service 以外的东西,并且上述任何上述操作都需要发生
  • 如果您的Debian软件包中有多个systemd单元,并且需要执行上述任何上述操作

Manual page for dh_systemd_start

何时使用override_dh_installinit:

  • 如果你的debian包中的主系统单元被命名为 package-name.service
  • 以外的东西
  • 如果Debian软件包中有多个systemd单元,则需要安装它们
  • 还有许多重复功能取决于您使用的debhelper版本与上面dh_systemd_startdh_systemd_enable部分中列出的版本类似。还有许多涉及暴发户的事情,这与这个问题无关。请参阅下面链接的手册页。

Manual page for dh_installinit

另请注意,所有这些覆盖都会进入您的debian控制文件。