Izpack可执行jar到RPM

时间:2017-08-22 10:02:15

标签: java rpm rpmbuild rpm-spec

我正在尝试为使用izpack生成的可执行jar创建rpm包。它基本上是一个允许用户安装工具/软件的安装程序向导。它提供了一个可执行的jar。所以我们必须做

Java -jar file.jar

初始化向导。我试图在Linux中自动化它,通过创建一个带有这个jar的rpm和一个执行这个jar的sh文件,并在执行rpm文件时运行sh文件。我是rpmbuild的新手,所有在线教程都是关于将特定jar从rpm文件复制到目标位置而不是如何执行它。

有人可以提供一个示例规范文件,该文件执行以下操作

使用.jar和.sh创建rpm文件 执行rpm -i file.rpm时,它会运行.sh文件,然后执行jar并打开向导。

我对如何让jar自动执行的任何其他建议持开放态度。我基本上试图为linux创建一个类似的exe文件

提前致谢。

1 个答案:

答案 0 :(得分:0)

我强烈建议出于各种原因这样做,因为它与RPM应该做的完全相反。您应该在构建机器(作为非root用户!),然后捕获要安装的文件。

为什么你的方法是个坏主意?

  • 安装脚本对用户是隐藏的(他们不能只查询RPM scriptlet以查看您对系统所做的更改,除了文件)
  • 不会以任何方式控制最终安装的文件,例如您将无法验证它们是否已损坏(rpm -V)或查询安装它们的软件包(rpm -q --whatprovides /path/to/file
  • “删除”或“升级”软件包实际上不会执行任何操作,除非您编写详细的脚本来处理所有这些未知文件
  • 我没有列出为什么你使用包经理而不是盲目地分发tarball发行版的所有其他原因,就像我们在黑暗时代所做的那样

也就是说,如果你坚持要破解,你的解决方案是将java安装调用放在%post中,这将在文件安装完成后执行。升级包时它会再次调用它,因此其他安装程序需要处理它。但同样,这不是正确的方法