我如何使 "read" 命令在 RPM 规范文件中工作?

How would I make "read" command work in RPM spec file?

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

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

这里有一些讨论 RPM 条件的有用页面:

从建议阅读中可以看出,这些是 构建时 而不是 安装时 功能。您不能进行 "interactive" RPM 安装。要了解更多相关信息,请参阅以下页面:

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