我能找到的有关构建 RPM 的所有信息似乎都早于 CentOS 6,而作为运行 CentOS 6.5 的完全软件包构建新手,我感到很困惑。
我读过的所有教程都提到一个BUILD
目录,并指出在%install
文件从其原始位置(/usr/bin/whatever
)复制并打包期间。
然而,在我构建的 CentOS 6.5 镜像中,BUILDROOT
出现了一个新目录,我思考旨在避免您必须在本机位置安装二进制文件,从而也避免使用sudo
with make install
。
然而,这似乎不是可选的。当尝试打包其他人编写的各种源代码时rpmbuild
,make install
成功地,但是当它找不到 下的二进制文件时就会死机BUILDROOT
,因为它们没有安装在那里。
经过一番挖掘,似乎有些 Makefile 可以接受参数DESTDIR
,但前提是作者支持它,如果作者不支持,我就无计可施了。我还读到过,使用--prefix
所以,我的问题是:
我如何构建和安装任何第三方源代码放入 BUILDROOT 位置?rpmbuild 能帮我做点什么吗?不需要修补我不理解的其他人的代码?
答案1
我如何构建和安装任何第三方源放入 BUILDROOT 位置?rpmbuild 能帮我做些什么吗 [...]?
并非如此。rpmbuild
本质上是一个包装器,并且依赖于 Makefile 等提供的指令。责任在于源的开发人员,而不是rpmbuild
。