我正在尝试构建自己的rpm包并且有一些疑问。
首先,在一些地方,我已经红了,不应该以root身份构建rpms。这是为什么?在构建过程中,rpmbuild必须经历安装阶段才能将文件安装到系统中。
据我所知,如果我不是根,我不能这样做。 rpmbuild进程完成但出错。那么,问题是如果真的有可能在没有安装内容的情况下构建rpm吗?或者最终我必须成为root才能完成构建过程?
答案 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包)
纠正我,如果我说错了。