我应该重写init系统的debhelper用法吗



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

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

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

至于您需要哪种覆盖组合,这取决于具体情况。

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

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

何时使用override_dh_systemd_enable:

  • 如果你想在一个通常在安装时禁用服务的系统上覆盖启用的服务(通常这是不是从Debian派生的任何linux风格)
  • 如果您想在通常在安装时启用服务的系统上覆盖您的服务以禁用(通常是Debian或从Debian派生的任何linux风格)
  • 如果您的Debian包中有多个systemd单元,并且需要启用它们
  • 如果debian包中的主系统dunit的名称不是package-name.service,则需要启用/禁用它

dh_systemd_enable 的手动页面

何时使用override_dh_systemd_start:

  • 如果你想在通常在安装时启动服务的系统上(通常是Debian或衍生自Debian的任何linux风格)将服务覆盖为不在安装时开始或引导
  • 如果您希望systemd单元而不是在debian软件包升级时停止或重新启动
  • 如果您希望systemd单元在debian包升级完成之前停止(这对于在升级过程中可能不会长时间停机的守护进程很有用
  • 如果您想撤消,请在debian包升级完成之前不要停止操作
  • 如果debian包中的主systemd单元的名称不是package-name.service,则需要执行上述任何操作
  • 如果您的Debian包中有多个systemd单元,并且需要执行上述任何操作

dh_systemd_start 的手册页面

何时使用override_dh_installinit:

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

dh_installinit 的手册页面

还要注意,所有这些覆盖都会进入debian控制文件。

相关内容

  • 没有找到相关文章

最新更新