![如何在 SSH 中以用户身份更改 topdir?](https://linux22.com/image/514669/%E5%A6%82%E4%BD%95%E5%9C%A8%20SSH%20%E4%B8%AD%E4%BB%A5%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E6%9B%B4%E6%94%B9%20topdir%EF%BC%9F.png)
我读过几篇帖子,称永远不要以 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