“apt升级”可以自动安装依赖包来替换已安装的包吗?

“apt升级”可以自动安装依赖包来替换已安装的包吗?

我们的团队已经陷入了 apt 更新工作方式的黑暗角落,我们需要一些帮助来找到出路。

这里的上下文是来自本地存储库的一组部署。我们有一个名为 的软件包foo,目前已安装在所有计算机上。我们还有一个新包 ,它用、、 和betterfoo注释。Replaces: fooConflicts: fooProvides: foo

这按预期工作。如果有人手动安装betterfoofoo先卸载,文件都是好的。

现在,问题是我们有第二个包,bar目前版本为 2.0。对于版本 2.1 更新,我们希望添加对betterfoo.

不幸的是,当我们将该依赖项添加到版本 2.1 并将其放入存储库中时,apt upgrade不会安装更新的包。错误似乎是bar: Depends: betterfoo but it is not going to be installed.

如果我们手动执行apt install bar,那么它会安装betterfoo(替换foo)并且一切正常。同样,如果我们首先这样做apt install betterfoo,那么apt upgrade就会成功。

有什么方法可以进行设置,以便在已安装的计算机上apt upgrade自动替换foo为?betterfoobar

一些附加注释(如果它们相关):

  • 一个限制:我们不能自动替换foo所有betterfoo地方。
  • 我们的设置是使其foo位于比 更高优先级的存储库中betterfoo。如果这是问题的原因,我们可以解决它。
  • 同样,foo是 3.0 版本,也是betterfoo1.0 版本。也许我们需要Provides:在 的条目上提供版本号betterfoo

相关内容