如何在 SSH 中以用户身份更改 topdir?

如何在 SSH 中以用户身份更改 topdir?

我读过几篇帖子,称永远不要以 root 用户身份构建 RPM。因此,我定义了一个新用户,并尝试在那里构建 RPM 结构,但是,使用

rpmbuild --rebuild src.name.rpm

返回一个错误,指出无法访问 topdir:

安装 curl-7.20.1-1.src.rpm

错误:无法写入 %sourcedir /usr/src/redhat/SOURCES

错误:无法安装curl-7.20.1-1.src.rpm

有人知道如何进行此更改吗?我在新用户下设置了正确的 /src/ 目录。

答案1

来自Centos 维基关于如何设置构建环境(假设您的环境相同,根据需要将 $HOME 更改为路径或更好的变量):

[用户 ID @ 主机名 ~]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

注意:第二个命令将覆盖您可能拥有的先前的 .rpmmacros,因此您应该在运行该命令之前检查您是否仍然有此文件。

基本上,这意味着您需要编辑用户 rpmmacros 文件以将 %_topdir 宏重定向到文件系统上您想要作为构建环境的 topdir 的新位置。

答案2

您还可以从命令行重新定位 topdir,如下所示:

rpmbuild --define "_topdir $HOME/rpmbuild" --rebuild src.name.rpm

相关内容