【问题标题】:How would I make "read" command work in RPM spec file?如何使“读取”命令在 RPM 规范文件中工作?
【发布时间】:2016-02-10 02:05:25
【问题描述】:

我写了一个 SPEC 文件来构建 RPM 包。我需要让最终用户确定%pre 部分中变量的值。所以我在%pre 部分使用了“read ”命令。但是,在安装时,系统似乎忽略了“读取”命令,因为系统没有等待我输入值。为什么?有没有什么好的方法来做上述事情?

【问题讨论】:

  • 没有。不要这样做。 RPM 确实需要以无人值守的方式安装(否则您会极大地惹恼许多系统管理员)。寻找其他方式来做你想做的事。 (即使在安装之前要求磁盘上存在具有正确配置的文件也可以,尽管它有点难看。)

标签: redhat rpm specifications rpmbuild


【解决方案1】:

RPM 没有将read 嵌入到您的包中,而是有一个可以通过命令行参数使用的条件机制。 RPM 中条件语句的大多数使用测试系统的 RPM 宏中定义的常量或进行简单的文件系统检查。你应该首先调查这些,因为它允许你的包在没有安装人员帮助的情况下安装。

以下是一些讨论 RPM 条件的有用页面:

从建议的阅读中可以看出,这些是 build-time 而不是 install-time 功能。您不能进行“交互式”RPM 安装。要了解更多信息,请参阅以下页面:

后者很明显,这是开发人员故意的。顺便说一句,一个回复提到了--relocate 选项,暗示这可以解决问题。然而,它实际上是不同的。在此处阅读有关的更多信息:

【讨论】:

  • 注意:这些都是在构建时间,而不是安装时间。
猜你喜欢
  • 2011-07-19
  • 2015-05-20
  • 1970-01-01
  • 2020-09-05
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
相关资源
最近更新 更多