Невозможно установить рельсы с jRuby - PullRequest
7 голосов
/ 18 мая 2011

Я пытаюсь установить рельсы с помощью jRuby с помощью следующей команды

jruby -S gem install rails -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'

Любой может помочь мне выйти из этой ошибки.

Спасибо заранее.

Ответы [ 3 ]

6 голосов
/ 20 мая 2011

У меня была эта проблема совсем недавно, но это было с rspec. Попробуйте это:
jruby --1.9 -S gem install rails -v 3.0.6

Это говорит jruby использовать интерпретатор ruby ​​1.9.

4 голосов
/ 15 июня 2011

Эта ошибка была исправлена ​​в 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 голосов
/ 21 марта 2012

Эта ошибка может возникать в некоторых версиях устанавливаемого вами гема, но не в других. Это связано с тем, что ошибка YAML связана с полем date в файле YAML, как указано в в этом комментарии об ошибке 5581 .

Например, версия 1.4.2 био-камня вызвала для меня исключение.

Инструкции по получению метаданных взяты из Бритья 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 работал для меня.

Если вы хотите самую последнюю и лучшую версию, вы можете получить драгоценный камень и изменить его метаданные или создать его самостоятельно, но для меня вышесказанное было достаточно хорошо.

...