Debian パッケージングによる条件付きシステムファイルの有効化

Debian パッケージングによる条件付きシステムファイルの有効化

デップサービスパッケージをインストールします。

組み込みデバイスでは、このパッケージが自動的にサービスを有効にしたいと思います。私たちの開発者ワークステーションでは、開発者は手動で作業を実行したいsystemctl start foo(重いサービスなので、デスクトップ環境で常に実行されている場合はリソースのみを消費します)。

この段階でユーザーに決定を下すように依頼するにはどうすればよいですかapt-get。これが最善の解決策ですか?

私はdh_makeこのパッケージを使用して作成しましたdebhelper

%:
    dh $@ --with=systemd

override_dh_systemd_enable:
    dh_systemd_enable --name=foo foo.service

ベストアンサー1

あなたはそれを使用することができますシステムデフォルトインストール中にsystemdサービスがデフォルトで有効または無効になっているかどうかに影響します。

/etc/systemd/system-preset/80-foo.presetDebianプリセットはインストール時にデフォルトですべてのサービスを有効にするため、次の行を含むファイルなどのファイルを送信して、開発ワークステーション(デフォルトの動作が本番で望むものと一致する場合)に簡単にプリセットを送信できます。

disable foo.service

Puppet、Chef、Ansibleなどのシステムを使用して開発者ワークステーションを管理する場合は、これらのシステムプリセット構成を提供して、本番マシンではなく開発者ワークステーションにのみポリシーを簡単に適用できます。

.deb パッケージはsystemctl preset事前設定された構成に従うため、このコマンドを使用してサービスを有効にする必要があります。

〜のように@JdeBPそして@ソースジェディdeb-helpers の Debian マクロが既にこれを行っており、デフォルトで使用されているマクロを呼び出すことをdh_systemd_enable指摘しました (パッケージを削除 (ただしクリーンアップしない))、再インストールする場合、小さな注意あり)。プリセットファイルを削除してもサービスは有効になりません。)をご覧ください。deb-systemd-helpersystemctl presetdeb-systemd-helperenableこのコメントは実際に機能しています。:

    # We use 'systemctl preset' on the initial installation only.
    # On upgrade, we manually add the missing symlinks only if the
    # service already has some links installed. Using 'systemctl
    # preset' allows administrators and downstreams to alter the
    # enable policy using systemd-native tools.

事前設定されたシステム機能の詳細については、マニュアルページを参照してください。システムデフォルトそして命令を出すsystemctl presetそれを達成しました。

おすすめ記事