rpm spec 文件 buildrequires 具有多个条件

rpm spec 文件 buildrequires 具有多个条件

是否可以在 rpm spec 文件中指定为了能够构建,您需要一个大于某个版本的包,同时又需要一个低于某个版本的包?

例如我想指定 python >= 2.7 和 < 3.0。

可以使用 buildrequires 来完成吗?如果可以的话,语法是什么样的?

由于我还没有看到过这样的例子,所以我在想:

BuildRequires: python >= 2.7
BuildRequires: python < 3.0

答案1

您在问题中给出了正确的例子,即:

BuildRequires: python >= 2.7
BuildRequires: python < 3.0

是正确的做法。

但是,如果你对经典的 Requires 部分使用相同的架构,则必须小心。如果你输入:

Requires: python >= 2.7
Requires: python < 3.0

在您的 spec 文件中,如果软件包 python-3.0 进入您的一个 yum 存储库,yum 会将其作为更新提供,这将导致您在运行“yum update”时出现依赖性问题。运行会因错误而中止,避免这种情况的唯一方法是输入:

exclude=python-3*

到你的 repo 部分,或者使用以下命令运行它:

yum update --exclude=python

如果您仅对 BuildRequires 使用这种方法,则不会出现问题,除非在运行 yum-builddep 之前安装了软件包 python-3.0。在这种情况下,您需要先将其删除。

相关内容