在Linux上自动化Inline :: Java安装(Centos / Redhat)

时间:2010-02-11 16:58:42

标签: java linux perl install inline

我正在维护一个运行自动安装基本服务器软件的perl脚本。其中一个新要求是安装Inline :: Java模块。

我们通常使用Yum进行安装的策略似乎已经失败,因为在yum中没有可用的Inline :: Java。我无法找到它的RPM版本,因此无法安装为RPM。唯一的选择似乎是通过CPAN安装或运送tar并有一个标识SDK位置的步骤并运行'perl Makefile.PL J2SDK =;使; make install'。

本能地说,我觉得自动安装有点不稳定,过去CPAN安装失败时我遇到了问题,我真的不想在实时服务器上制作,但我想不出来一个更好的选择。

我考虑的另一个选项是发送.pm文件,将其放在用户定义的目录中并使用'use lib'将其定义为一个位置但是由于Inline :: Java工作的方式我不认为这是可能的,它需要InlineJavaServer的位置等等。

有没有人有更好的解决方案,或者对上面提到的哪一个是最好的?

2 个答案:

答案 0 :(得分:3)

您可以build your own perl-Inline-Java打包并将其放入私有yum存储库,或者甚至将其贡献给Fedora / EPEL。

答案 1 :(得分:2)

Inline::Java会在与InlineJavaServer.jar文件相同的位置查找Inline/Java.pm及其所需的其他文件。从一台机器上的安装目录复制整个发行版并将其复制到另一台机器(具有相同的架构)并不像听起来那么疯狂。如果你只有几个不同的系统(不是所有的linux,32位vs 64位,perl 5.6 vs perl 5.10等),那么为每个系统制作一个单独的包是很容易的。

Inline::Java中有一些安装时配置,包括指定要使用的默认Java安装。但是这个(以及其他默认配置)总是可以用PERL_INLINE_JAVA_J2SDK等环境变量覆盖(有关完整列表,请参阅Inline::Java perldoc)。您可以使用自己的自定义模块打包Inline::Java,例如, MyCompany::InlineJavaConfig,可以在每个脚本中加载Inline::Java模块之前设置适当的环境变量。

还有一些其他安装时配置,例如是否配置JNI和其他本机支持。将支持这些功能的文件从一台机器复制到另一台机器可能有点儿干。但是,我无法想到任何理由,因为它不起作用。