私はアプリケーション実行可能ファイルをインストールするためにDebianパッケージを作成する素晴らしいガイドに従っています。
https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging
そして、dh-systemdを使用してsystemdサービスをインストールします。
https://bunn.cc/2017/debian-packaging-with-systemd/
しかし、両方を組み合わせてサービスをインストールし、サービスで実行されているバイナリをインストールするパッケージを作成したいと思います。
最初のチュートリアルのアプリケーションファイルは、アプリケーションのビルドとインストールに使用されるmakeファイルと一緒に/ debianフォルダの上のディレクトリにあり、systemdチュートリアルのサービスファイルはdebianフォルダにあります。サービスファイルと依存バイナリをインストールする制御ファイルを生成する方法は不明です。
誰でもこれを行う方法を提案したり、役に立つ参考資料を提供していただきありがとうございます。
読んでみました。https://wiki.debian.org/Teams/pkg-systemd/Packagingしかし、それは多くを説明しません。
これは現実的な期待ですか、それともサービスとアプリケーションを別々にパッケージ化する必要がありますか?
ありがとう
答え1
サービスとアプリケーションは少なくとも一緒にパッケージ化する必要があり、サービスは管理するサービスを実装するバイナリと共にパッケージ化する必要があります。
ほとんどの場合、systemdデバイスのインストールは透過的です。メインビルドが予想されるディレクトリ(/lib/systemd/system
)にユニットをインストールすると、そのユニットが自動的に選択されアクティブになります。パッケージがからデバイスを出荷すると、debian
正しい場所にインストールされ、自動的に有効になります。これはすべて次のように行われますdh_systemd_enable
そしてdh_systemd_start
が提供されていますが、現在は基本シーケンスのdh-systemd
一部であり、含まれています。debhelper
dh
したがって、既存のアプリケーションパッケージを使用してその中にサービスファイルを追加すると、debian
「ただ動作する」ことがわかります(使用すると仮定dh
)。