以 Archlinux 中 makepkg 的方式打开 rpmbuild

以 Archlinux 中 makepkg 的方式打开 rpmbuild

💡 原文中文,约2500字,阅读约需6分钟。
📝

内容提要

本文介绍了在Redhat系发行版上打包软件的过程与Archlinux的区别,包括构建命令、目录结构、自动安装依赖和撤销命令效果等。作者建议使用rpmbuild-wrapper脚本实现以makepkg方式打开rpmbuild的目标。

🎯

关键要点

  • Redhat 系发行版与 Archlinux 在软件打包思路上存在显著差异。
  • Fedora 的 rpmbuild 默认在 $HOME/rpmbuild 下构建,使用 rpmdev-setuptree 创建必要目录。
  • rpmbuild 目录结构包括 BUILD、BUILDROOT、RPMS、SOURCES、SPECS 和 SRPMS。
  • Archlinux 的构建目录结构更为简洁,每个软件包有独立目录,包含 PKGBUILD 文件和源文件。
  • 可以通过修改 $HOME/.rpmmacros 来改变 rpmbuild 的默认目录结构,以便更像 Archlinux 的方式。
  • Fedora 的 rpmbuild 不支持自动安装依赖,但可以使用 dnf 的 builddep 命令。
  • 构建完成后可以使用 dnf history undo 撤销安装的依赖,但可能会遇到版本问题。
  • rpmbuild 不支持自动下载源文件,可以使用 --undefine=_disable_source_fetch 或 spectool 命令实现。
  • rpmbuild 的构建行为与 makepkg 不同,使用 -bb 选项可以构建最终安装包。
  • 建议创建 rpmbuild-wrapper 脚本以实现类似 makepkg 的功能。
➡️

继续阅读