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

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

我们通常的安装使用Yum的策略似乎是失败的,因为yum中没有Inline :: Java。 我无法find它的RPM版本,所以无法安装为RPM。 唯一的select似乎是安装通过CPAN或运输的焦油和有一个步骤,确定SDK的位置,并运行“perl Makefile.PL J2SDK =; 使; 安装“。

本能地说,我认为对于自动化安装来说有些不稳定,我曾经遇到过CPAN安装失败的问题,而且我真的不想在一个活的服务器上安装,但是我想不出更好的select。

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

有没有人有一个更好的解决scheme或意见,上面提出的哪一个是最好的?

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

Inline::Java有一些安装时配置,包括指定要使用的默认Java安装。 但是这个(和其他的默认配置)总是可以用像PERL_INLINE_JAVA_J2SDK这样的环境变量来覆盖(见完整列表的Inline :: Java perldoc )。 你可以用你自己定制的模块来打包Inline::Java ,比如说MyCompany::InlineJavaConfig ,它可以在Inline::Java模块加载到每个脚本之前设置合适的环境变量。

还有一些其他的安装配置,比如是否配置JNI和其他本地支持。 将支持这些功能的文件从一台机器复制到另一台机器可能有点复杂。 但是我想不出任何理由,这是行不通的。

您可以构建自己的 perl-Inline-Java软件包,并将其放在专用的yum存储库中,甚至可以将其提供给Fedora / EPEL。