我必须为一些驱动程序构建一个RPM包。我需要从.tar.gz存档构建RPM。tar球还包含.spec文件。我已经设置了rpmbuild环境,如下所述:http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment
因此,我的目录结构是:
/home/rpmbuild
/home/rpmbuild/BUILD
/home/rpmbuild/RPMS
/home/rpmbuild/SOURCES
/home/rpmbuild/SPECS
/home/rpmbuild/SRPMS
.tar.gz文件包含specfile并放在/home/rpmbuild/sources中
如果然后导航到该目录并运行以下命令,则会正确构建RPM包,但会将其放置在/root/rpmbuild/rpms中,而不是/home/rpmbuild/rpms中(在我预期的位置)。
sudo rpmbuild -ta driver.tar.gz
我想这是因为我和sudo一起运行rpmbuild。我想得对吗?有没有办法让它改为build-in/home/rpmbuild?
我知道使用rpmbuild作为根目录是不好的做法,但是如果我不将其作为根目录运行,我会遇到很多错误(没有访问类似于根目录/tmp/orbit root的目录的权限)。似乎更难更改每个目录的权限,然后再更改它们。
这样做对吗?我非常感谢你的帮助。
最佳答案
如果您需要系统目录上的非根写权限,
那么您的%install scriptlet没有安装到%buildroot}。
您需要修补您的生成才能安装到%{buildroot}。
对于autoconf生成的makefile,这通常像“make destdir=%{buildroot}…”
关于linux - rpmbuild输出到/root/rpmbuild目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23965958/