*.deb
linkを使用してパッケージからサービスをインストールしたいと思いますupdate-alternatives
。次にシンボリックリンクを有効/開始します。既存のDebianアーカイブにこれの例はありますか?そうでなければ、人々は何をしますか?
update-alternatives
同じコンピュータに複数のバージョンのソフトウェアを展開し、それを使用して実行するバージョンを選択したいので、これを行います。
update-alternatives
サービスを提供するためにdebhelperを使用して依存する場合、一般的な制御ファイルは次のようになります。
# myapp99.postinst
update-alternatives --install \
/lib/systemd/system/myapp.service myapp \
/lib/systemd/system/myapp99.service 99
#DEBHELPER#
# myapp99.prerm
update-alternatives --remove myapp lib/systemd/system/myapp99.service
#DEBHELPER#
しかし、問題は、#DEBHELPER#
これが完了した後も実行され続けることです。myapp.service
postrm
update-alternatives --remove
postrmからプログラムをupdate-alternatives --remove
移動できますが、#DEBHELPER#
未使用の古いパッケージをクリアすると、プログラムが停止/無効になるという問題が残りますmyapp.service
。私が考慮していない他のものもあると確信しています。
既存のDebianアーカイブに私が望むことをすることができるパッケージはありますか?
私はこれをやらずにこれをほとんど考えていますdebhelper
。インストールする前にリンクが存在することを確認し、新しいリンクの場合は有効にしてください。削除後にリンクが存在することを確認し、そのサービスの最後のプロバイダである場合にのみ停止/無効化/ブロックします。それが唯一の方法であれば大丈夫です...私は車輪を再発明し、バグを導入したくありません。
答え1
Debian コード検索ショー同様の作業を行う唯一のパッケージは次のとおりです。iptables-persistent
そして、私はそれがあなたが望むことをしようとしているとは感じません。
あなたの提案を処理するための明確な方法はありません。私は別の方法で処理します。
1つの可能性は、複数のサービスをまったく提供しないことです。代わりに、サービスを提供する共通パッケージを構築し、そのサービスに代替を使用して処理されたバイナリを使用させるようにします。
別のアプローチは、複数のサービスを提供しますが、これを代替として設定するのではなく、管理者にシステム機能を使用してアクティブにするインスタンスを選択させることです。
後者の場合dh_installsystemd --no-enable
(で)便利ですdebian/rules
。