【问题标题】:Should I override debhelper usage of the init system?我应该覆盖初始化系统的 debhelper 使用吗?
【发布时间】:2016-03-24 08:41:44
【问题描述】:

我正在尝试使用 systemd 脚本构建一个 debian 包,但我并不真正了解最好的方法。

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

【问题讨论】:

    标签: packaging debian-based debhelper


    【解决方案1】:

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

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

    听起来你只需要包含 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:

    • 如果您想在一个通常在安装时启动服务的系统(通常是 Debian 或任何 linux 风格的 源自 Debian)
    • 如果您希望 systemd 单元在 debian 软件包升级时停止或重新启动
    • 如果您希望 systemd 单元在 debian 软件包升级完成之前停止(这对于在升级过程中不应有可能长时间停机的守护进程很有用
    • 如果您想撤消一个在 debian 软件包升级完成之前不要停止操作
    • 如果您的 debian 包中的主 systemd 单元的名称不是 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 控制文件。

    【讨论】:

    • 请注意,现在看来 dh_installsystemd 是用来代替其他任何东西的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多