3

我正在尝试构建自己的 rpm 包并且有几个疑问。

首先,在几个地方,我认为不应该以 root 身份构建 rpm。这是为什么?在构建过程中,rpmbuild 必须经过安装阶段,将文件安装到系统中。

据我了解,如果我不是root,我将无法做到这一点。rpmbuild 过程以错误结束。所以,问题是是否真的有可能在不向系统安装东西的情况下构建一个 rpm?还是最终我必须成为 root 才能完成构建过程?

4

2 回答 2

7

如果您在实时文件系统上构建 RPM,您覆盖已经存在的内容。这是构建过程的意外副作用,应不惜一切代价避免。

构建 RPM 的正确方法是将所有文件安装到暂存目录(通常在/var/tmp. 这避免了与实时系统的任何冲突,并可以帮助您确保:

  • 您不要尝试打包比预期更多的文件
  • 打包时不会错过任何文件

这些都不需要root权限。如果您的 RPM 构建脚本需要 root 才能运行,那么您做错了。

由于它不需要 root 权限,因此您不应以 root 身份运行它。尽可能避免以 root 身份运行。

于 2011-09-13T15:20:54.353 回答
0

让您的系统知道您想在哪里构建您的软件包 - 请参阅 $HOME/.rpmmacros 文件以获取“_topdir”值:

rpm --eval %{_topdir} # get your current value

其次,您想更改其构建根值:

rpmbuild --buildroot=[path] ..

(--buildroot 键仅获得非 root 用户构建自己的 rpm 包的能力)

纠正我,如果我说的有问题。

于 2011-10-10T16:29:21.930 回答