是否可以在 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。在这种情况下,您需要先将其删除。