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

问题描述 投票:1回答:1

我正在尝试用systemd脚本构建一个debian包,我真的不明白最好的方法。

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

packaging debian-based debhelper
1个回答
0
投票

你在--with=systemd调用中肯定需要dh

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

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

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

何时使用override_dh_systemd_enable:

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

Manual page for dh_systemd_enable

何时使用override_dh_systemd_start:

  • 如果你想覆盖你的服务,那就不要在安装时启动,或者在通常在安装时启动服务的系统上启动(通常这是Debian或者从Debian派生的任何linux风格)
  • 如果您希望systemd单元在debian软件包升级时不停止或重新启动
  • 如果您希望systemd单元在debian软件包升级完成之前不停止(这对于在升级期间不应该有很长停机时间的守护程序很有用)
  • 如果你想撤消一个不停止,直到debian包升级完成动作
  • 如果你的debian包中的主系统单元被命名为package-name.service以外的东西,并且上述任何上述操作都需要发生
  • 如果您的Debian软件包中有多个systemd单元,则需要执行上述任何操作

Manual page for dh_systemd_start

何时使用override_dh_installinit:

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

Manual page for dh_installinit

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

© www.soinside.com 2019 - 2024. All rights reserved.