dpkg:依存パッケージのアップグレード(依存パッケージが失敗する可能性がある)

dpkg:依存パッケージのアップグレード(依存パッケージが失敗する可能性がある)

2つのパッケージAとBがあります。ここで、B はパッケージ A と正確なバージョンに依存するオプションのコンポーネントです。したがって、2つのパッケージがインストールされている場合は、同じバージョンであることを確認する必要があります。状況をより複雑にするために、preinstスクリプト内のパッケージAのインストールが失敗する可能性があります。この場合、何もアップグレードしないでください。

したがって、AとBがインストールされている場合の望ましい動作は次のとおりです。

  1. dpkg --install A-new.deb
    アップグレードが拒否されました(BがAに依存するため)
  2. dpkg --install B-new.deb
    アップグレードが拒否されました(最初にAをアップグレードする必要があるため)
  3. dpkg --install A-new.deb B-new.deb
    A、Bアップグレード
  4. dpkg --install A-new.deb B-new.debそして何も変更せずにAのアップグレードが失敗しました。
    (つまり、AとBの以前のバージョンがインストールされています。)

私が試したこと:

Depends:制御ファイルのB行にA(バージョンを含む)を追加します。

  1. dpkg --install A-new.deb
    Aはアップグレードし、Bは以前のバージョンを維持します。
  2. dpkg --install B-new.deb
    B はアップグレードされましたが、Unpacked 状態で、依存関係のため構成が拒否されました。
  3. dpkg --install A-new.deb B-new.deb
    AとBがアップグレードされました。
  4. dpkg --install A-new.deb B-new.debそして、Aのアップグレードが失敗した場合、
    Aは古いバージョンのままで、BはUnpacked状態の新しいバージョンです。

したがって、3. 目的の動作のみを遵守します。

Pre-Depends:制御ファイルのB行にA(バージョンを含む)を追加します。

  1. dpkg --install A-new.deb
    Aはアップグレードし、Bは以前のバージョンを維持します。
  2. dpkg --install B-new.deb
    依存性のため、アップグレードが拒否されました。
  3. dpkg --install A-new.deb B-new.deb
    A はアップグレードされ、B は依存関係の問題により以前のバージョンを維持します。
  4. dpkg --install A-new.deb B-new.debそして何も変更せずにAのアップグレードが失敗しました。
    (つまり、AとBの以前のバージョンがインストールされています。)

ここでは、2. と 4. だけが必要な動作と一致します。

目的の動作をどのように取得できますか?

ベストアンサー1

おすすめ記事