rpmbuild的%post部分不起作用

情况:我试图build立一个自定义的rpm来放置一个configuration文件在一个特定的位置。 通过将configuration文件放在适当的目录中,安装完成,但%post部分不起作用。 这部分呼应用户input并“读取”它。 这个读取的值将被放置在这些configuration文件的'sed'的帮助下。

问题: '阅读'不工作在%post部分,即。 安装过程不会等待用户提供input。 它基本上通过将文件放置在目录中来完成安装。 简而言之,%post部分不是为用户提供input的交互。

请参阅这里的SPEC文件: http : //pastebin.com/5BgkJUpG 。 这将有助于得到这个想法。

我写了上面的%post部分的完全相同的行,用于构build一个.deb包的“postint”部分,它在那里工作得很好。 安装deb软件包的用户能够进行input,并且这个给定的值被放置在configuration文件中'sed'。

我不相信RPM可以交互运行。 您正在做出一些危险的假设,因为RPM没有通过configurationpipe理以自动方式或GUI前端进行安装。 这两种情况都不适用于需要从shellinput的RPM。

也许我可以build议一个替代scheme? 这是否提示目标主机的主机名? IE浏览器可以你的sed包括$(hostname)而不是从标准inputinput?

我发现这个参考有人尝试相同的。 他们的build议是得到input在%pre中怎么样?

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

从Fedora的RPM指南 :

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

我想你正在寻找一个可重定位的rpm 。