【问题标题】:RPM Spec File %files Fail on Owner Username with SpaceRPM 规范文件 %files 在所有者用户名上失败并带有空格
【发布时间】:2013-01-14 20:10:40
【问题描述】:

我正在创建一个 RPM 规范文件,其中包含指定包含文件的所有权的 %files 部分。我正在尝试按如下方式指定用户和组:

...
%attr (755, DOMAIN\\user, "DOMAIN\\domain users") /opt/whatever
...

用户似乎在工作,但组名中的空格导致 rpmbuild 上的语法检查失败。 This 链接似乎表明适用标准通配规则并且双引号内必须存在空格,但这似乎并不能解决问题。有什么想法吗?

【问题讨论】:

  • %attr 条目的语法是 %attr(mode,user,group),您似乎缺少逗号。还是复制/粘贴错误?
  • 是的,抱歉,这只是一个复制/粘贴错误。固定。
  • 我已经尝试了很多东西,看起来%attr 确实不支持空格。看起来是个限制。​​
  • 尝试删除左括号前的空格。顺便说一句,您为什么要将其硬编码到 RPM 中?这根本没有意义。 RPM 通常是通用的。你的用例是什么?
  • 谢谢。是的,但在我们的例子中,文件在所有情况下都必须属于特定组。我们的 RPM 不是为了更广泛地分发,而是为了简化安装/卸载并增加可追溯性。

标签: linux packaging redhat rpm yum


【解决方案1】:

是的,文件用户/组标签中不允许有空格。

最简单的解决方法是不使用 %attr,而是设置用户/组 在 %post 脚本中让。

要正确设置 %post 中的用户/组,还应该禁用 通过 rpm -V 使用前置的 %verify 指令检查用户/组 规范 %files,然后添加一个 %verifyscript(即运行 通过 rpm --verify|-V) 来验证 %post 中的设置 脚本是正确的。

【讨论】:

  • 优秀的答案。你一说“在%post 做”,我立刻想,“但是验证呢!?!” ;)
猜你喜欢
  • 2015-08-25
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多