从Windows下的ANT脚本创建RPM包

我需要从在Windows计算机上运行的ANT脚本创建RPM包。 此包必须包含构建中的结果类以及其他一些其他资源。

我想应该有一些程序可以从命令行调用来创建这个包。

我想在Windows下执行此操作的原因是我们有一个脚本可以为几个不同的平台构建安装程序,并且已经为windows配置了所有内容,所以我想避免将所有内容迁移到Linux的痛苦。

你知道怎么能实现这个目标吗?

编辑:我使用单独的Linux机器来做到这一点。 我使用scp任务复制所有文件,然后使用ssh任务远程执行rpm命令。 如果此任务返回成功代码,则使用scp将结果rpm复制回来。

我不知道有任何方法可以做到这一点,但这可能只是我无知的说法。

两个建议:

设置Linux机器(单独的PC或虚拟机)并通过脚本远程安装rpm(请参阅ssh / scp / samba )。 这使我感到安全,避免了完整的构建环境迁移。

更冒险的方法是使用Java编写自己的RPM文件。 RPM文件格式似乎是一个标题,后跟多种标准存档格式之一。 需要对存档内容进行一些分析,因此这种方法在短期内可能非常耗时(尽管它可能会导致更快的构建)。

还要考虑redline-rpm java库和ant任务。 https://github.com/craigwblake/redline

一种可能的解决方案是使用纯java RPM操作工具,例如下面描述的工具:

http://jrpm.sourceforge.net/rpmspec/index.html

检查Ant手册,我发现了以下可选任务:

http://ant.apache.org/manual/Tasks/rpm.html

但是,这仅适用于Linux计算机

Freaking Package Management可以做到这一点。 您应该能够使用JRuby和MRI Ruby运行它。

fpm -s dir -t rpm mydir – 或其他提供rpm关键字的咒语。 见fpm --help

我不认为这是可能的,为Linux构建的运行时包将无法在Windows上运行(我们不希望Linux上的dll和exes,我们做!)。 Cygwin面临着类似的挑战,他们明确表示他们通过编译Windows的源文件来做到这一点。