如何将源编译成 rpmbuild BUILDROOT?

如何将源编译成 rpmbuild BUILDROOT?

我能找到的有关构建 RPM 的所有信息似乎都早于 CentOS 6,而作为运行 CentOS 6.5 的完全软件包构建新手,我感到很困惑。

我读过的所有教程都提到一个BUILD目录,并指出在%install 文件从其原始位置(/usr/bin/whatever)复制并打包期间。

然而,在我构建的 CentOS 6.5 镜像中,BUILDROOT出现了一个新目录,我思考旨在避免您必须在本机位置安装二进制文件,从而也避免使用sudowith make install

然而,这似乎不是可选的。当尝试打包其他人编写的各种源代码时rpmbuildmake install 成功地,但是当它找不到 下的二进制文件时就会死机BUILDROOT,因为它们没有安装在那里。

经过一番挖掘,似乎有些 Makefile 可以接受参数DESTDIR,但前提是作者支持它,如果作者不支持,我就无计可施了。我还读到过,使用--prefix

所以,我的问题是:

我如何构建和安装任何第三方源代码放入 BUILDROOT 位置?rpmbuild 能帮我做点什么吗?不需要修补我不理解的其他人的代码?

答案1

我如何构建和安装任何第三方源放入 BUILDROOT 位置?rpmbuild 能帮我做些什么吗 [...]?

并非如此。rpmbuild本质上是一个包装器,并且依赖于 Makefile 等提供的指令。责任在于源的开发人员,而不是rpmbuild

相关内容