RPM安装过程无需安装

时间:2011-09-13 15:09:30

标签: rpm rpmbuild

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

首先,在一些地方,我已经红了,不应该以root身份构建rpms。这是为什么?在构建过程中,rpmbuild必须经历安装阶段才能将文件安装到系统中。

据我所知,如果我不是根,我不能这样做。 rpmbuild进程完成但出错。那么,问题是如果真的有可能在没有安装内容的情况下构建rpm吗?或者最终我必须成为root才能完成构建过程?

2 个答案:

答案 0 :(得分:7)

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

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

  • 您不会尝试打包比预期更多的文件
  • 包装时不会遗漏任何文件

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

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

答案 1 :(得分:0)

让您的系统知道您想要构建程序包的位置 - 请参阅$ HOME / .rpmmacros文件以获取'_topdir'值:

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

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

rpmbuild --buildroot=[path] ..

( - buildroot key仅获取非root用户能力来构建自己的rpm包)

纠正我,如果我说错了。