开发者

Unable to install rails with jRuby

I am trying to install the rails with jRuby with the following command

jruby -S gem install rails -v 3.0.6

But stuck with the error :

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:i开发者_StackOverflow社区n `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'

Anyone can help me to out of this error .

Thanks in advance .


I had this problem just a bit ago, but it was with rspec. Try this:
jruby --1.9 -S gem install rails -v 3.0.6

This tells jruby to use the ruby 1.9 interpreter.


This bug has been fixed in JRuby 1.6.2.

Workaround for JRuby 1.6.1 on the command line (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


This bug can happen with some versions of the gem you're installing, but not others. This is because the YAML error is due to the date field in the YAML file, as mentioned in this comment for bug 5581.

For example, version 1.4.2 of the bio gem caused the exception for me.

Instructions for how to get the metadata are from Shaving a YAML Yak, except I substituted gunzip and less for 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

whereas for version 1.4.1 of bio

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

So doing sudo jruby -S gem install bio --version 1.4.1 worked for me.

If you want the latest and greatest, then you could fetch the gem and modify its metadata, or build the gem yourself, but the above was Good Enough™ for me.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜