为什么以root身份构建RPM很不好?


11

页面包含一个突出的警告:

重要

切勿以根用户身份构建RPMS。

为什么以root身份构建RPM很不好?是否有可能覆盖某些文件?是否存在文件权限问题?

Answers:


22

RPM .spec文件写得不好(甚至写得不好的错文件)也可能做不正确的事情,例如:

  • 直接安装到正在运行的系统而不是沙箱
  • 在文件系统上留下垃圾
  • 意外运行讨厌的命令,例如: rm -rf ${RPM_BUILD_ROOT}

RPM构建过程中没有任何部分实际上需要root访问。因此,在构建RPM时,我们应遵循“如果不需要root权限,它就不会以root身份运行”的标准过程。

这样可以避免令人讨厌的事故和意外。


4

fedora的模拟也很不错。如果将其构建为模拟版本,则很可能是一个非常干净的RPM。


FWIW曾经与Red Hat一起工作过,我知道他们要求 RPM必须先在Mock中构建,然后才能将其接受到构建环境中。我认为Fedora项目也是如此。
EmmEff

3

通常,除非您确实需要权限,否则永远不要使用root用户。但是您是对的,主要问题是'rpmbuild'几乎会执行您写入spec文件中的所有内容。(覆盖文件,创建用户,删除文件等)。

编辑:

附带说明一下,我建议您看一下openSUSE Build Service,它使构建用于不同发行版的rpm变得非常容易。(它也可以设置为本地实例。)


-1

当我通过INTERNET搜索时,在以下链接http://pmc.ucsc.edu/~dmk/notes/RPMs/Creating_RPMs.html中得到了您提出问题的原因。

这样做只是为了避免意外的错误或意外的东西。


1
欢迎来到服务器故障!通常,我们希望网站上的答案能够独立存在-链接很棒,但是,如果该链接中断,则答案应该具有足够的信息,仍然有帮助。请考虑编辑您的答案以包括更多详细信息。有关更多信息,请参见FAQ
slm 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.