假设我的规范文件中有这个:
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 级别上为您提供帮助(重大更改)。