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

如何阻止rpmbuild自动在RPM包名末尾追加x86_64等架构标识

RPM构建File Not Found错误解决方案

根本原因

你遇到的报错和N-V-R末尾的架构标识无关,该后缀是RPM包的标准命名规范,二进制包带对应CPU架构、noarch包带noarch标识属于正常逻辑,不需要也无法移除。
报错的核心原因是:rpmbuild在%files阶段会从%{buildroot}(对应报错日志里的/root/xxxx/xxxx/xxx/xxx/work/BUILDROOT/ApplicationServer-10.2.0-3.x86_64/目录)下搜索你声明要打包的文件,你没有在SPEC的%install阶段将需要打包的/jboss目录放到该路径下,所以触发文件未找到错误。

可行解决方案

  • 第一步:在你的SPEC文件中补充%install阶段逻辑,将待打包的jboss目录复制到%{buildroot}下的对应路径,示例如下:
%install
# 确保buildroot根目录存在
mkdir -p %{buildroot}/
# 替换./jboss为你实际构建环境中已准备好的jboss目录所在路径
cp -r ./jboss %{buildroot}/
  • 第二步:保留你当前的%files段配置即可,/jboss路径会自动匹配%{buildroot}/jboss目录完成打包。
  • 如果你确认该包不需要依赖特定CPU架构,可以保留BuildArch: noarch配置,打包后生成的noarch包可以在任意架构的RHEL系统上安装。
  • 如果你是通过Ant任务调用rpmbuild构建(从报错日志的任务标签可以看出),需要额外检查Ant配置中是否正确将jboss目录提前放到了rpmbuild的构建工作目录中,避免%install阶段复制时找不到源文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:06:04