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を使用)、rpmbuildlibfoo.so.1またはlibfoo.so.2に依存するかどうかが自動的に検出されます。したがって、正確なマイナーバージョンは検出されませんが、APIレベル(急激な変更)では役立ちます。

関連情報