RPM 规范文件:如何将 Requires 版本链接到构建时使用的 BuildRequires 版本?

RPM 规范文件:如何将 Requires 版本链接到构建时使用的 BuildRequires 版本?

假设我的规范文件中有这个:

BuildRequires: foo-devel

我不在乎使用哪个版本的 foo 。

并且在

%package bar
Summary:
Group:
Requires: foo = %{foo_devel_version}
%description

我想要求 foo 与构建中使用的 foo-devel 版本相同。
我怎样才能实现这个目标?

我如何在构建时知道BuildRequires我正在使用哪个版本的包? rpm 中是否有内置解决方案,或者我必须做类似的事情%global foo_devel_version %(rpm -q foo-devel --qf "%{VERSION}")

答案1

据我所知,rpmbuild 中没有这样的机制。但是,由于会rpmbuild自动确定您的依赖关系;如果您正确使用库版本(使用 SONAME);然后rpmbuild将自动检测您是否依赖 libfoo.so.1 还是 libfoo.so.2 。因此他不会检测确切的次要版本,但应该在 API 级别上为您提供帮助(重大更改)。

相关内容