You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需修改spec文件通过rpm宏解决rpmbuild从SOURCES子目录读源文件问题

可以通过配置rpm宏的方式解决该问题,无需修改任何spec文件。

实现原理

rpmbuild默认通过%_sourcedir宏定义的路径查找源码、补丁等构建依赖文件,默认值为~/rpmbuild/SOURCES。你可以通过--define参数在执行构建命令时临时覆盖该宏的值,指向对应软件的源码子目录。

适配当前目录结构的批量构建方案

你当前的源码子目录名称和spec文件名前缀完全对应,可以直接用如下循环脚本批量构建所有包:

for spec_path in ~/rpmbuild/SPECS/*.spec; do
    # 提取spec文件名前缀(对应SOURCES下的子目录名)
    pkg_name=$(basename "${spec_path}" .spec)
    # 临时指定_sourcedir为对应源码子目录,执行构建
    rpmbuild -bb --define "_sourcedir ~/rpmbuild/SOURCES/${pkg_name}" "${spec_path}"
done

单包测试验证

你可以先执行如下命令测试单个包的构建,确认方案可用后再执行批量操作:

rpmbuild -bb --define "_sourcedir ~/rpmbuild/SOURCES/autoconf" ~/rpmbuild/SPECS/autoconf.spec

内容的提问来源于stack exchange,提问作者itsazzad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:57:04