原文中文,约2500字,阅读约需6分钟。
📝
内容提要
本文介绍了在Redhat系发行版上打包软件的过程与Archlinux的区别,包括构建命令、目录结构、自动安装依赖和撤销命令效果等。作者建议使用rpmbuild-wrapper脚本实现以makepkg方式打开rpmbuild的目标。
❓
Q&A
Archlinux 和 Redhat 系发行版在软件打包上有什么主要区别?
Archlinux 的构建目录结构更为简洁,每个软件包有独立目录,而 Redhat 系的 rpmbuild 则在统一的 rpmbuild 目录下构建,包含多个子目录。
如何在 Fedora 中使用 rpmbuild 创建类似 Archlinux 的目录结构?
可以通过修改 $HOME/.rpmmacros 文件,重新定义 %_topdir 和其他相关宏,以实现类似 Archlinux 的目录结构。
Fedora 的 rpmbuild 如何处理依赖安装?
Fedora 的 rpmbuild 不支持自动安装依赖,但可以使用 dnf 的 builddep 命令手动安装依赖。
如何撤销在 Fedora 中安装的依赖?
可以使用 dnf history undo 命令撤销安装的依赖,但可能会遇到版本问题。
rpmbuild 是否支持自动下载源文件?
rpmbuild 默认不支持自动下载源文件,但可以使用 --undefine=_disable_source_fetch 选项或 spectool 命令来实现。
rpmbuild 和 makepkg 的构建行为有什么不同?
makepkg 默认只构建最终的安装包,而 rpmbuild 使用 -bb 选项可以构建最终安装包和源包。
🏷️