dpkg:升级依赖包(依赖的包可能会失败)

dpkg:升级依赖包(依赖的包可能会失败)

我有两个包 A 和 B,其中 B 是一个可选组件,取决于包 A 及其确切版本。因此,我需要确保如果安装了两个软件包,它们的版本相同。为了让事情变得更复杂一点,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:将A(带有版本)添加到控制文件中的B行

  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:将A(带有版本)添加到控制文件中的B行

  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. 符合所需的行为

我怎样才能获得所需的行为?

相关内容