systemctlがシンボリックリンク単位ファイルのアクティブ化を拒否する問題を解決するには、どの回避策を使用する必要がありますか?

systemctlがシンボリックリンク単位ファイルのアクティブ化を拒否する問題を解決するには、どの回避策を使用する必要がありますか?

まもなく更新されるパッケージがありますが、一部のユーザーは以前のパッケージを使用することを好むことを知っています。だから私が使った理由代替アップデートパッケージのルーチン。問題は、最新のパッケージが最新のパッケージに依存していることです。単位文書。

要約する、

dpkg -L mypackage-1.0
/opt/mypackage-1.0/binary
dpkg -L mypackage-service-1.0
/opt/mypackage-1.0/mypackage.service

dpkg -i mypackage-1.0インストール時に単一の選択肢が提供されます。私のバッグdpkg -i myservice-service-1.0そして私のサービスサービス

これらは相互依存的です。

dpkg -L mypackage-2.0
/opt/mypackage-2.0/binary
dpkg -L mypackage-service-2.0
/opt/mypackage-2.0/mypackage.service

dpkg -i mypackage-2.0インストール時に新しい選択肢を使用できます(/lib/systemd/system/mypackage.service -> /etc/alternatives/mypackage.service)。私のバッグdpkg -i myservice-service-2.0そしてmypackage - サービス

その背後にあるアイデアは、update-alternatives --config mypackageバージョン間を簡単かつ明示的に使用して切り替えることを可能にすることです。update-alternatives --config mypackage-service

最初の部分はうまくいきましたが、2番目の部分では問題が発生しました。それ〜らしい同様に、ユニットファイルにシンボリックリンクを使用することはできません(update-alternatives --install正確に実行する操作)。

私は使うシステム制御215存在するDebian の提示

私はすべてが最初から異なるように配置されている可能性があると思います。

答え1

問題を解決する新しいバージョンにアップグレードする前に、ファイルをコピーして移動するだけでなく、systemd現在のバージョンの動作を変更することはできないため、別のメカニズムを使用してファイルを置き換える必要があります。update-alternativessymlinksystemd

関連情報