指定在 rpm 规范文件中提供版本

Specified Provides version in rpm spec file

发生了什么:
我现在正在处理 linux 并行安装问题,因为 rpm 不再支持在一台机器上同时安装 32 位和 64 位同名软件包。所以我需要把32位包的名字从xxx.i386.rpm改成xxx-32bit.i386.rpm。为了支持升级这个包,我应该在spec文件中提供旧的包名:xxx。

问题:
我查看了 rpm.org 的页面,寻找我们是否可以指定我们在规范文件中提供的版本,例如:

提供:xxx = 16.0

我做了一些测试,它似乎工作。但是我找不到任何官方解释。
如果我在 Provides 中指定了 provides 包版本,其他人是否知道正确的行为。

我把 multilib 仍然受 RPM 支持放在一边(我很困惑你为什么要那样做)。但是当我专注于那个规格问题时。

你几乎是正确的。只是省略那个百分号。正确的是:

Provides: xxx = 16.0

请注意,“16.0”应该只是版本。虽然技术上可以 version-release,但稍后会给您带来麻烦。

如果你想提供真正干净的升级路径,你也应该把 Obsolete 放在那里。参见 https://docs.fedoraproject.org/en-US/packaging-guidelines/#renaming-or-replacing-existing-packages