2011-05-18 35 views
7
安装导轨

我想用下面的命令来安装使用JRuby轨道无法使用JRuby

的JRuby -S创业板安装导轨-v坚持错误3.0.6

但:

JRuby limited openssl loaded. http://jruby.org/openssl 
gem install jruby-openssl for full support. 
System.java:-2:in `arraycopy': java.lang.ArrayIndexOutOfBoundsException 
     from DefaultResolver.java:111:in `makeTime' 
     from DefaultResolver.java:277:in `create' 
     from DefaultResolver.java:317:in `handleScalar' 
     from DefaultResolver.java:435:in `orgHandler' 
     from DefaultResolver.java:455:in `node_import' 
     from org/yecht/ruby/DefaultResolver$s_method_1_0$RUBYINVOKER$node_import 
.gen:65535:in `call' 
     from CachingCallSite.java:146:in `call' 
     from RubyLoadHandler.java:40:in `handle' 
     from Parser.java:300:in `addNode' 
     from DefaultYAMLParser.java:676:in `yyparse' 
     from Parser.java:290:in `yechtparse' 
     from Parser.java:284:in `parse' 
     from YParser.java:152:in `load' 
     from org/yecht/ruby/YParser$s_method_0_1$RUBYINVOKER$load.gen:65535:in ` 
call' 
     from JavaMethod.java:630:in `call' 
     from DynamicMethod.java:186:in `call' 
     from CachingCallSite.java:309:in `cacheAndCall' 
     from CachingCallSite.java:148:in `call' 
     from CallOneArgNode.java:57:in `interpret' 
     from LocalAsgnNode.java:123:in `interpret' 
     from NewlineNode.java:104:in `interpret' 
     from InterpretedMethod.java:180:in `call' 
     from DefaultMethod.java:174:in `call' 
     from CachingCallSite.java:309:in `cacheAndCall' 
     from CachingCallSite.java:148:in `call' 
     from CallOneArgNode.java:57:in `interpret' 
     from LocalAsgnNode.java:123:in `interpret' 
     from NewlineNode.java:104:in `interpret' 
     from BlockNode.java:71:in `interpret' 
     from InterpretedMethod.java:180:in `call' 
     from DefaultMethod.java:174:in `call' 
     from CachingCallSite.java:309:in `cacheAndCall' 
     from CachingCallSite.java:148:in `call' 
     from CallOneArgNode.java:57:in `interpret' 

任何人都可以帮助我摆脱这个错误。

在此先感谢。

+0

你有没有试过'gem install jruby-openssl'这行在错误输出中有说吗? – jaydel 2011-05-18 14:30:15

+0

是的,我能够安装“jruby -S gem install jruby-openssl”但是在此之后,当我运行命令来安装rails时,会引发上述异常。 – Vik 2011-05-19 05:44:49

回答

6

我刚才有这个问题,但它与rspec。试试这个:
jruby --1.9 -S gem install rails -v 3.0.6

这告诉jruby使用ruby 1.9解释器。

+0

对不起:(我已经尝试了这个,但得到了同样的错误 – Vik 2011-05-20 07:14:27

+0

这对我有效,下面是JRuby问题的链接:http://jira.codehaus.org/browse/JRUBY-5581它看起来像这样可能会得到固定在1.6.2。 – benvolioT 2011-05-23 20:49:30

4

这个bug在JRuby 1.6.2中已经修复。

变通办法的JRuby 1.6.1在命令行上(Windows):

set JRUBY_OPTS=--1.9 
# in your specific case 
gem install rails 

# this is where I got the error (Rails 3 with Bundler) 
bundle update 
+0

是的,我在安装了jruby 1.5.6的Windows 7 x64上安装Vagrant时遇到了同样的错误,删除1.5.6并安装最新的(1.6.5)解决了这个问题。 – 2011-12-05 23:32:51

0

此错误可以通过宝石的某些版本您安装发生,而不是其他。这是因为YAML错误是由于YAML文件中的date字段造成的,如this comment for bug 5581中所述。

例如,生物宝石1.4.2版本对我造成了例外。

说明如何获取元数据从Shaving a YAML Yak,除了我取代gunzip解和少gzcat

gem fetch bio --version 1.4.2 
tar xvf bio-1.4.2.gem 
gunzip metadata.gz 
less metadata | grep date 
date: 2011-08-26 00:00:00.000000000 Z 

YAML.load("date: 2011-08-26 00:00:00.000000000 Z") # Causes exception 

而对于生物1.4.1版本

gem fetch bio --version 1.4.1 
tar xvf bio-1.4.1.gem 
gunzip metadata.gz 
less metadata | grep date 
date: 2010-10-22 00:00:00 +09:00 

YAML.load("date: 2010-10-22 00:00:00 +09:00") # Doesn't cause an exception 

这样算下来sudo jruby -S gem install bio --version 1.4.1工作了我。

如果你想要最新最棒的,那么你可以获取宝石并修改它的元数据,或者自己构建宝石,但上面是我的Good Enough™。