【问题标题】:Can we execute unix command inside %install section?我们可以在 %install 部分执行 unix 命令吗?
【发布时间】:2016-02-09 12:24:33
【问题描述】:

我使用提供的二进制文件创建了一个没有源的 rpm。简而言之,我正在尝试通过 rpm 自动静默安装 sybase 客户端。但是我需要帮助我们是否可以将以下静默安装命令放在规范文件的%install 部分 -

setup.bin –f <responseFileName> -i silent -DAGREE_TO_SYBASE_LICENSE=true -DRUN_SILENT=true

任何帮助将不胜感激。

【问题讨论】:

  • %install 部分在您构建 rpm 时执行,而不是在安装时执行。什么结果,你到底想用这个命令实现什么?
  • 我已将上面的代码放在 %post 部分,因为我不希望它在构建 rpm 时执行,而是我希望 rpm 在安装在 linux 服务器上时运行 setup.bin。希望这将是正确的开始?我要试试这个。

标签: linux sybase rpm rpmbuild rpm-spec


【解决方案1】:

如果您希望在安装软件包时执行脚本,则必须将其放在%post 部分。根据您的评论,这就是您所做的。

问题在于,如果您以这种方式运行安装脚本,rpm 将无法跟踪已安装的文件。它不会知道这些文件属于包,卸载 rpm 时不会删除它们,不会正确处理更新等。你的 rpm 会损坏。

如果您无法构建合适的 rpm,只需使用一个简单的安装脚本即可。

【讨论】:

  • 感谢您的指导。出于某种原因,我们需要将其打包为 rpm,否则我很乐意使用我的问题中提到的命令。但是我确实理解您的意思,但是我以尽可能少的伤害取得了结果。