Ubuntu 的 `dpkg` 忽略了包的 `Replaces` 字段

Ubuntu 的 `dpkg` 忽略了包的 `Replaces` 字段

我正在为软件包 构建一个较新的替代品。Ubuntulibgpg-error还有一个libgpg-error0,它依赖于系统软件包(例如systemd)。我的软件包提供了它所libgpg-error0依赖的一切,因此我列出了以下内容:

Package: libgpg-error
Version: 1.35-1
...
Conflicts: libgpg-error, libgpg-error-dev, libgpg-error0
Provides: libgpg-error0, libgpg-error, libgpg-error-dev
Replaces: libgpg-error, libgpg-error-dev, libgpg-error0

但是,dpkg 拒绝干净地升级。我遗漏了什么?

可以看到生成的 deb这里以及fpm-cook它的 ( ) 代码这里

干杯!

编辑:

这个答案似乎适用:https://serverfault.com/a/429226,尽管在同一个问题中还有另一个答案,指出提供确实允许版本。

答案1

根据Debian 政策Provides实际上不能有版本,因此被忽略Depends。在这种情况下,我将仅为 Ubuntu 重命名我的包以满足此依赖性。

根据dpkg 更新日志(不再可用),提供现在允许版本控制,并且这应该可以工作,但是我尝试的时候却不行(使用版本 1.19.0.5)。

相关内容