Siyuan Ren Asked: 2023-08-05 14:00:04 +0800 CST2023-08-05 14:00:04 +0800 CST 2023-08-05 14:00:04 +0800 CST rpmbuild:处理不同发行版中包的命名差异 772 我正在编写一个 RPM 规范文件来构建我的软件。该软件依赖于Crypto++。Crypto++ 在不同的发行版上有不同的命名,例如,在 OpenSUSE 上,我应该写 BuildRequires: libcryptopp-devel 但在 Fedora 上,应该是 BuildRequires: cryptopp-devel 现在,如何将两者统一在一个规范文件中? rpm 1 个回答 Voted Best Answer Vojtech Trefny 2023-08-05T15:18:13+08:002023-08-05T15:18:13+08:00 在这种情况下,您应该能够使用pkgconfig(cryptopp). 使用 pkg-config 的软件包可以在Fedora和SUSE中使用此语法,但这是 pkgconfig 的特殊情况,在其他情况下,您需要使用条件: %if 0%{?fedora} BuildRequires: cryptopp-devel %endif %if 0%{?suse_version} BuildRequires: libcryptopp-devel %endif %if 0%{?mageia} BuildRequires: lib64cryptopp-devel %endif
在这种情况下,您应该能够使用
pkgconfig(cryptopp)
. 使用 pkg-config 的软件包可以在Fedora和SUSE中使用此语法,但这是 pkgconfig 的特殊情况,在其他情况下,您需要使用条件: