私の仕様ファイルに次のものがあるとしましょう。
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レベル(急激な変更)では役立ちます。