2つのパッケージAとBがあります。ここで、B はパッケージ A と正確なバージョンに依存するオプションのコンポーネントです。したがって、2つのパッケージがインストールされている場合は、同じバージョンであることを確認する必要があります。状況をより複雑にするために、preinst
スクリプト内のパッケージAのインストールが失敗する可能性があります。この場合、何もアップグレードしないでください。
したがって、AとBがインストールされている場合の望ましい動作は次のとおりです。
dpkg --install A-new.deb
アップグレードが拒否されました(BがAに依存するため)dpkg --install B-new.deb
アップグレードが拒否されました(最初にAをアップグレードする必要があるため)dpkg --install A-new.deb B-new.deb
A、Bアップグレードdpkg --install A-new.deb B-new.deb
そして何も変更せずにAのアップグレードが失敗しました。
(つまり、AとBの以前のバージョンがインストールされています。)
私が試したこと:
Depends:
制御ファイルのB行にA(バージョンを含む)を追加します。
dpkg --install A-new.deb
Aはアップグレードし、Bは以前のバージョンを維持します。dpkg --install B-new.deb
B はアップグレードされましたが、Unpacked 状態で、依存関係のため構成が拒否されました。dpkg --install A-new.deb B-new.deb
AとBがアップグレードされました。dpkg --install A-new.deb B-new.deb
そして、Aのアップグレードが失敗した場合、
Aは古いバージョンのままで、BはUnpacked状態の新しいバージョンです。
したがって、3. 目的の動作のみを遵守します。
Pre-Depends:
制御ファイルのB行にA(バージョンを含む)を追加します。
dpkg --install A-new.deb
Aはアップグレードし、Bは以前のバージョンを維持します。dpkg --install B-new.deb
依存性のため、アップグレードが拒否されました。dpkg --install A-new.deb B-new.deb
A はアップグレードされ、B は依存関係の問題により以前のバージョンを維持します。dpkg --install A-new.deb B-new.deb
そして何も変更せずにAのアップグレードが失敗しました。
(つまり、AとBの以前のバージョンがインストールされています。)
ここでは、2. と 4. だけが必要な動作と一致します。
目的の動作をどのように取得できますか?