rpmbuild 的 %post 部分不起作用

rpmbuild 的 %post 部分不起作用

情况:我正在尝试构建自定义 rpm 以将配置文件放置在特定位置。通过将配置文件放置在正确的目录中,安装可以顺利完成,但 %post 部分不起作用。此部分回显用户进行输入并“读取”它。此读取值将在“sed”的帮助下放置在这些配置文件中。

问题:%post 部分中的“read”不起作用,即安装过程不等待用户提供输入。它基本上通过将文件放入目录中来完成安装。简而言之,%post 部分不与用户交互以提供输入。

请参阅此处的 SPEC 文件:http://pastebin.com/5BgkJUpG。这将有助于理解这个想法。

我为构建 .deb 包的“postint”部分编写了与上述 %post 部分完全相同的行,并且在那里运行良好。安装 deb 包的用户可以进行输入,并且这个给定的值会使用“sed”放置在配置文件中。

答案1

我不认为 RPM 旨在能够以交互方式运行。您做出了两个危险的假设,即 RPM 不是通过配置管理以自动化方式或 GUI 前端安装的。对于需要从 shell 输入的 RPM 来说,这两种情况都不是好兆头。

也许我可以建议一个替代方案?这个提示是针对目标主机的主机名吗?IE 可以sed包含$(hostname)而不是从 stdin 获取输入吗?

我发现此引用给那些试图做同样事情的人。他们的建议是如何在 %pre 中获取输入的?

答案2

来自“Unix and Linux”的用户贡献了这个答案:

Fedora 的 RPM 指南

警告 不要尝试编写交互式脚本。许多用户会自动安装 RPM。在这种情况下,或者如果用户运行图形化 RPM 工具,脚本输出的任何信息都将丢失。用户输入将不可用

答案3

我认为你正在寻找可重新定位的 rpm

相关内容