我正在尝试构建自己的 rpm 包并且有几个疑问。
首先,在几个地方,我认为不应该以 root 身份构建 rpm。这是为什么?在构建过程中,rpmbuild 必须经过安装阶段,将文件安装到系统中。
据我了解,如果我不是root,我将无法做到这一点。rpmbuild 过程以错误结束。所以,问题是是否真的有可能在不向系统安装东西的情况下构建一个 rpm?还是最终我必须成为 root 才能完成构建过程?
如果您在实时文件系统上构建 RPM,您将覆盖已经存在的内容。这是构建过程的意外副作用,应不惜一切代价避免。
构建 RPM 的正确方法是将所有文件安装到暂存目录(通常在/var/tmp
. 这避免了与实时系统的任何冲突,并可以帮助您确保:
这些都不需要root权限。如果您的 RPM 构建脚本需要 root 才能运行,那么您做错了。
由于它不需要 root 权限,因此您不应以 root 身份运行它。尽可能避免以 root 身份运行。
让您的系统知道您想在哪里构建您的软件包 - 请参阅 $HOME/.rpmmacros 文件以获取“_topdir”值:
rpm --eval %{_topdir} # get your current value
其次,您想更改其构建根值:
rpmbuild --buildroot=[path] ..
(--buildroot 键仅获得非 root 用户构建自己的 rpm 包的能力)
纠正我,如果我说的有问题。