无法让JRuby在AIX机器上工作

时间:2014-11-21 01:44:24

标签: jruby aix

我到处寻找,我无法找到有关如何让JRuby在AIX上工作的任何帮助。我尝试解压缩二进制包,尝试使用jruby-complete.jar,但我偶然发现了同样的问题。

似乎发生了所有错误,因为JRuby正在查找lib文件的错误目录。

例如,我设置了我的GEM_PATH=/home/dev999/install_tmp/gem然后我尝试要求activerecord-jdbc-adapter,它安装在./gem/gems/activerecord-jdbc-adapter-1.3.12下,但出于某种原因,JRuby一直在{{1}下寻找宝石如下所示。

./gem/gems/activemodel-4.1.8/lib

非常感谢任何有关可能导致此问题的见解。

编辑:服务器是AIX 64位;我们尝试了64位和32位的Java 1.6和1.7(用于AIX的IBM自定义构建),但我们最终在最终解决方案中坚持使用1.7位,尽管该版本似乎不会影响Ruby 1.7中的问题。 .9安装,但由于我们无法使JRuby 1.7.16工作,我无法确定我们使用的Java版本是否可以参与该问题。

2 个答案:

答案 0 :(得分:1)

好的,所以服务器管理员和我花了两天时间试图解决这些问题,最后总结一下我们最终得到的解决方案,让JRuby在AIX_64上工作。

1。首先,最重要的是,我必须安装JRuby 1.7.9,因为 jruby.org 中的主要下载页面中的 1.7.16 稳定版本有很多(看似特定于AIX的错误,我们无法弄清楚;例如,我原始问题中显示的错误的宝石路径分辨率。版本 1.7.9 自动排除大部分问题;

2)由于某些奇怪的原因,我仍然无法弄清楚,jirb无法使用下载的JRuby软件包附带的jline-2.11.jar库。在某些时候,我让它工作,但后来我无法回溯我的步骤,所以我放弃了。为了解决这个问题,我下载了jline-1.0.jar并替换了位于<jruby_path>/lib/ruby/shared/readline/jline-2.11.jar下的 jline jar ;请注意,即使我们用jline-1.0替换它,jar文件名仍必须相同,即jline-2.11.jar否则jirb会抱怨缺少lib;

3)一些常见步骤:将jruby/bin添加到$PATH;确保which java显示您要使用的正确Java版本;设置$JAVA_HOME;

4)(可选,但非常有用),以避免必须授予我的用户对/usr/<jruby>/<gem_paths>目录的写入权限,但仍然允许我安装gems而不必询问我添加的管理员{{1} }到我的export GEM_PATH=~/.gem,然后是.profile。要将宝石安装到我的主目录,我会mkdir ~/.gem

希望这可以帮助其他用户解决同样的问题。

答案 1 :(得分:0)

我的主要建议是加入jruby邮件列表并询问。我曾经只使用过一次jruby,并设法让它运转起来。这里有一些神奇的东西,我并不是真的明白,我有一个我需要的第一个文件的顶部:

# We need the db2j.jar loaded
require 'db2j.jar'

# Some feaking magic Java needs
Java::JavaClass.for_name 'com.ibm.db2j.jdbc.DB2jDriver'

# The connection string is jdbc:db2j:the/path/to/the/file where the
# file is actually a directory.
CloudscapeDriver = 'jdbc:db2j'

您可以在此处查看电子邮件主题:http://comments.gmane.org/gmane.comp.lang.jruby.user/17856

祝你好运