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