跳到主要内容
常见问题 rpmbuild打包spec

rpm 包打不出来?

rpmbuild 打包报错的常见原因:spec 语法错、BuildRequires 缺包、未配 _topdir 宏目录,给排错顺序与命令。

发布于 2026/11/11 所属频道 银河麒麟

简短答案

打包失败按层查:先是不是 ~/.rpmmacros 没写 _topdir(报找不到 rpmbuild 路径),其次是 spec 里 BuildRequires 没装齐,最后才是 spec 语法本身。从上往下查最快。

现象对照表

报错 原因
找不到 rpmbuild 工作目录 没配 _topdir 宏
BuildRequires(...) not found 编译依赖没装
%files 段 bad entry spec 里写了不存在的文件
打出的包装完跑不起来 %install 没装全或 Requires 没写全

排查步骤

# 1. 配宏并建目录
cat >> ~/.rpmmacros <<'EOF'
%_topdir %(echo $HOME)/rpmbuild
EOF
mkdir -p ~/rpmbuild/{BUILD,SPECS,SOURCES,RPMS,SRPM}

# 2. 补编译依赖
yum builddeps 包名.spec    # 或逐条 yum install xxx-devel

# 3. 干跑查 spec 语法,再正式打
rpmbuild -bs 包名.spec
rpmbuild -ba 包名.spec

# 4. 看产物
ls -l ~/rpmbuild/RPMS/

处理办法

  • _topdir 没配就只报路径错,配完即可;
  • BuildRequires 缺包用 yum builddeps 一次补齐;
  • %files 报错多为文件没落到 BUILD 目录,先 ls ~/rpmbuild/BUILD/包名*/ 核对;
  • 打完的包先在本机 rpm -ivh 自测一遍再分发;目标基线对照 服务器 V11 条目,分发介质可用 Rufus 启动盘条目 的方法做 U 盘。

操作小结

  1. 先配宏目录,再谈 spec;
  2. builddeps 补依赖,干跑先排语法;
  3. 产出的包本机自测后再发;
  4. 分发前记录包版本与目标基线。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常见问题

同一集合内的相近主题,按标签与关键词匹配