= rpmbuild 用法 `rpmbuild` 命令由 `rpmdevtools` 提供, 详见 `man rpmbuild` 与 `rpmbuild --help` == 常用构建命令 === 构建源码包 [source,bash] ---- pushd ~/rpmbuild/SPECS rpmbuild -bs ~/rpmbuild/SPECS/${name}.spec ---- === 构建二进制包 * 使用 `rpmbuild --rebuild` 命令从 `SRPM` 构建, 生成的二进制包位于 `~/rpmbuild/RPMS/`; 构建的流程如下: .. 安装对应 SRPM 至 ~/rpmbuild/, 包括 SPEC 以及源码和补丁; .. 使用安装好的文件构建 RPM 包; .. 移除安装的 SPEC 与 源码和补丁; + [source,bash] ---- rpmbuild --rebuild ~/rpmbuild/SRPMS/${name}-${version}-${release}.src.rpm ---- * 若想要在构建后保留 SPEC 和源码可以: ** 构建时使用 `+rpmbuild --recompile ~/rpmbuild/SRPMS/${SRPM}+` 在构建二进制包后不删除 SPEC 和源码; ** 使用 `+rpm -Uvh ~/rpmbuild/SRPMS/${SRPM}+` 安装源码包至 `~/rpmbuild/`; ** 卸载源码包: `rpm -qa` 并不会显示你所安装的源码包, 这是由于源码包并非真正安装, 而仅仅是解压于你的系统中, 所以 `rpm -e` 并不能将它卸载, 你所需要做的仅仅是手动删除源码包解压的目录; 不同用户的 RPM Macros 不同, 如果你使用 root 权限安装源码包, 默认位置在 `/usr/src/packages` 或类似的路径 (内含 `BUILDROOT`, `SPECS` 等目录) 使用用户权限安装默认位置在 `~/rpmbuild`, 确认数据安全后, 手动删除它们; * 使用 `rpmbuild -bb` 从 SPEC 构建二进制包 + [source,bash] ---- rpmbuild -bb ~/rpmbuild/SPECS/${name}.spec ---- === 构建所有 [source,bash] ---- rpmbuild -ba ~/rpmbuild/SPECS/${name}.spec ---- == 使用 zypper 安装源码包 [source,bash] ---- ## 首先确保你的 zypper 添加了源码源 ---- == 参考文献 . https://forums.opensuse.org/showthread.php/525837-Remove-a-source-package-src-rpm-(opposite-of-zypper-source-install-rpmbuild)