2

systemd スクリプトを使用して debian パッケージをビルドしようとしていますが、最適な方法がわかりません。

私の最初の質問は、オプションを使用する必要があるか(および--with=systemdオーバーライドする必要があるか)、またはオプションを十分に使用する必要があるかどうかです。どちらも同じことをしているように見えるからです。dh_systemd_enabledh_systemd_startdh_installinit--name

4

1 に答える 1

4

あなたは間違いなく--with=systemdあなたのdh呼び出しに必要です。

必要なオーバーライドの組み合わせについては、状況によって異なります。

systemd ユニットを含めるだけでよいように思われるため、何もオーバーライドする必要はありません。

あなたの質問には文脈があまりないので、各systemd debhelpderをいつオーバーライドするかについて、いくつかのユースケースをリストします。

override_dh_systemd_enable を使用する場合:

  • 通常、インストール時にサービスを無効にするシステムでサービスを無効にして有効にする場合 (通常、これはDebian から派生したものではない任意の Linux フレーバーです)
  • 通常、インストール時にサービスを有効にするシステム (通常、これは Debian または Debian から派生した Linux フレーバー)でサービスをオーバーライドして無効にする場合
  • Debian パッケージに複数の systemd ユニットがあり、それらを有効にする必要がある場合
  • debian パッケージのメインの systemdunit がpackage-name.service以外の名前で、有効化/無効化する必要がある場合

dh_systemd_enable のマニュアルページ

override_dh_systemd_start を使用する場合:

  • 通常、インストール時にサービスを開始するシステム (通常、これは Debian または Debian から派生した Linux フレーバー) で、インストール時に開始または起動しないようサービスをオーバーライドする場合
  • debian パッケージのアップグレード時に systemd ユニットを停止または再起動したくない場合
  • debian パッケージのアップグレードが完了するまでsystemd ユニットを停止させたくない場合(これは、アップグレード中に長時間のダウンタイムが発生する可能性がないデーモンに役立ちます)
  • 「 debian パッケージのアップグレードが完了するまで停止しない」アクションを元に戻したい場合
  • debian パッケージのメインの systemd ユニットにpackage-name.service以外の名前が付けられていて、上記のアクションのいずれかを実行する必要がある場合
  • Debian パッケージに複数の systemd ユニットがあり、上記のアクションのいずれかを実行する必要がある場合

dh_systemd_start のマニュアルページ

override_dh_installinit を使用する場合:

  • debian パッケージのメインの systemd ユニットがpackage-name.service以外の名前である場合
  • Debian パッケージに複数の systemd ユニットがあり、それらをインストールする必要がある場合
  • 使用している debhelper のバージョンに依存する多くの繰り返し機能もあり、上記dh_systemd_startおよびdh_systemd_enableセクションで挙げたものと同様です。また、この質問には関係のない新興企業に関連するものもたくさんあります。以下にリンクされている man ページを参照してください。

dh_installinit のマニュアルページ

また、これらのオーバーライドはすべて debian 制御ファイルに入ることに注意してください。

于 2018-03-06T13:22:43.650 に答える