![使用 .spec 文件从源代码签出构建二进制 RPM 的最简单方法是什么](https://linux22.com/image/55689/%E4%BD%BF%E7%94%A8%20.spec%20%E6%96%87%E4%BB%B6%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AD%BE%E5%87%BA%E6%9E%84%E5%BB%BA%E4%BA%8C%E8%BF%9B%E5%88%B6%20RPM%20%E7%9A%84%E6%9C%80%E7%AE%80%E5%8D%95%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88.png)
我签出了源代码树(https://github.com/hautreux/slurm-spank-x11,出于好奇),其中包含.spec
用于构建 RPM 包的文件。我的问题是,从源树构建二进制 RPM 的最简单方法是什么?在 Debian 世界中,我只是debian/rules binary
从源代码树内部运行。在 RPM 世界中是否有类似的操作可以如此简单?
答案1
最简单的方法是使用rpmbuild
.
rpmbuild <spec file>
是相当于 的 RPM fakeroot debian/rules binary
。
软呢帽
在第一次构建之前,您需要通过安装开发工具组来准备构建系统:
# yum install @development-tools
然后:
# yum install fedora-packager
作为用户(而不是 root)创建您的构建环境:
$ rpmdev-setuptree
这将创建一个目录树:
~/rpmbuild
├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
构建:
您的spec
文件位于SPECS
目录中,源代码位于SOURCES
.
然后您切换到该SPECS
目录并运行rpmbuild <spec file>
。
当然,除上述之外,还有更多内容。详细信息可在费多拉维基
红帽或 CentOS
rpmbuild
这些发行版使用相同的工具 ( ),但过程和所需的包略有不同。 CentOS 的详细信息位于CentOS 维基。
铜管服务
这是Fedora 提供的构建服务,允许您上传源RPM ( srpm
) 文件并让该服务为任何目标(例如RedHat/CentOS 或Fedora)构建它。您仍然需要打包源代码和文件spec
,但它可以帮助您在本地系统上安装所有构建工具和所需的开发库。