gpt4 book ai didi

linux - 如何将rpmbuild默认目录从/root/rpmbuild目录更改为其他目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:56 25 4
gpt4 key购买 nike

我必须为某些驱动程序构建一个 rpm 包。我需要从 .tar.gz 存档构建 rpm。 tar ball 还包含 .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。我在想这个吗?有没有办法让它直接在/home/rpmbuild 中构建?

我知道以 root 身份使用 rpmbuild 是不好的做法,但如果我不以 root 身份运行它,我会遇到很多错误(没有权限访问 root 拥有的目录 - 例如/tmp/orbit-root)。似乎更改每个目录的权限然后将它们更改回来要困难得多。

这是解决此问题的正确方法吗?非常感谢您的帮助。

最佳答案

不要使用以下命令为 rpm 创建安装树:

rpmdev-setuptree

使用下面给出的命令在要构建 rpm 的位置创建 rpm 树:

mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

现在,将文件夹中的适当文件复制为 specstar.gz 并在 rpmbuild 目录中运行以下命令:

rpmbuild --define "_topdir `pwd`" -v -ba SPECS/{*spec_file.specs*}

关于linux - 如何将rpmbuild默认目录从/root/rpmbuild目录更改为其他目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23965958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com