【发布时间】:2014-07-20 21:13:14
【问题描述】:
我必须为某些驱动程序构建一个 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 文件包含规范文件,位于 /home/rpmbuild/SOURCES
如果我然后导航到该目录并运行以下命令,则 rpm 包已正确构建,但放置在 /root/rpmbuild/RPMS 而不是 /home/rpmbuild/RPMS 中(我希望它在哪里)。
sudo rpmbuild -ta driver.tar.gz
我认为这是因为我使用 sudo 运行了 rpmbuild。我是否正确地考虑了这一点?有没有办法让它改为在 /home/rpmbuild 中构建?
我知道以 root 身份使用 rpmbuild 是一种不好的做法,但如果我不以 root 身份运行它,我会遇到很多错误(无权访问 root 拥有的目录 - 例如 /tmp/orbit-root)。更改这些目录中的每一个的权限似乎比将它们更改回来要困难得多。
这是解决此问题的正确方法吗?我非常感谢帮助。
【问题讨论】:
-
永远不要以
root运行rpmbuild。你可以很容易地毁掉你的整个系统。
标签: linux centos rpm rhel rpmbuild