如何将源代码编译成rpmbuild BUILDROOT?

关于构buildRPM的所有信息似乎都是在CentOS 6之前发布的,作为运行CentOS 6.5的完整软件包构build新手,我相当困惑。

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

然而,在我正在构build的CentOS 6.5映像中,出现了一个新的BUILDROOT目录,我认为 BUILDROOT目录是为了避免你必须在本机位置安装二进制文件,因此也避免了make install使用sudo

但是,看来这不是可选的。 当试图打包其他人写的各种源文件时, rpmbuild 成功完成了make install ,但是当它在BUILDROOT下找不到二进制文件时就BUILDROOT ,因为它们没有安装在那里。

经过一番挖掘之后,似乎有些Makefiles可以采用DESTDIR说法,但是只有作者支持它,如果没有,我就卡住了。 我也读过 – 使用--prefix是一个坏主意

所以,我的问题是:

我如何构build和安装任何第三方来源到BUILDROOT位置? 有没有什么rpmbuild可以做我不需要修补别人的代码我不明白?

我如何构build和安装任何第三方来源到BUILDROOT位置? 有没有什么rpmbuild能为我做的[…]?

不是真的。 rpmbuild本质上是一个包装器,并且依赖于Makefile提供的指令等。责任在于开发者(而不是在rpmbuild