rpmbuild 常见问题

宏命令问题

  • %make_build 可以使用 make 代替;
  • %ldconfig_scriptlets 可以使用 ldconfig 代替。

例如 CentOS 7 系统,安装 epel-rpm-macros 软件包之后就可以支持这些宏命令。

指定编译核数

通过环境变量指定核树:

~# export RPM_BUILD_NCPUS=16

如果 spec 文件中以类似 make %{?_smp_mflags} 的方式进行编译,也可以使用 rpm 命令确认核数:

~# rpm --eval "%{?_smp_mflags}"
-j16

忽略依赖 RPM 包

如果 spec 文件指定了依赖某些 RPM 包,rpmbuild 命令可以增加 --nodeps 参数跳过。

如果需要使用依赖的 RPM 包提供的库和头文件,可以增加环境变量使用之前编译的 BUILDROOT 目录:

LIBRARY_PATH=~/rpmbuild/BUILDROOT/XXX/usr/lib64 C_INCLUDE_PATH=~/rpmbuild/BUILDROOT/XXX/usr/include rpmbuild --rebuild --nodeps XXX.src.rpm