从Windows下的ANT脚本创建RPM包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Windows下的ANT脚本创建RPM包相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

答案

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

两个建议:

设置Linux机器(单独的PC或虚拟机)并通过脚本远程安装rpm(请参阅ssh / scp / samba)。这让我觉得这是一种避免完全构建环境迁移的安全方法。

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

另一答案

还要考虑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的源文件来实现的。

以上是关于从Windows下的ANT脚本创建RPM包的主要内容,如果未能解决你的问题,请参考以下文章

总结Linux下的软件安装

学习笔记第二十节课

Linux的rpm包管理

rpm包制作

NDK: ant 错误 [javah] Exception in thread "main" java.lang.NullPointerException 多种解决办法(代码片段

软件包安装方法rpm包介绍rpmyum