无法使用jRuby安装rails
我正在尝试使用以下命令使用jRuby安装rails
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'
任何人都可以帮助我摆脱这个错误。
提前致谢 。
我刚才遇到过这个问题,但是它与rspec
。 试试这个:
jruby --1.9 -S gem install rails -v 3.0.6
这告诉jruby使用ruby 1.9解释器。
JRuby 1.6.2中已修复此错误。
在命令行(Windows)上解决JRuby 1.6.1的问题:
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
您正在安装的某些版本的gem可能会发生此错误,但其他版本不会发生。 这是因为YAML错误是由YAML文件中的date
字段引起的,如错误5581的评论中所述 。
例如,生物gem的1.4.2版本对我来说是个例外。
关于如何获取元数据的说明来自Shaving a YAML Yak ,除了我用gzcat代替gunzip和less
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
对我sudo jruby -S gem install bio --version 1.4.1
。
如果你想要最新的和最好的,那么你可以获取gem并修改其元数据,或者自己构建gem,但上面对我来说是Good Enough™。
- Rails插件可以打包为WAR / JAR文件吗?
- 如何在jRuby中启用C扩展支持?
- jruby注释方法没有被调用
- JRuby:import vs include vs java_import vs include_class
- Rails控制台运行没有提示
- 在jruby上安装mysql的许多错误
- 错误:私有方法`gsub’调用nil:NilClass与pik install ruby 1.9.3
- 即使使用模块化风格实现默认路由,Sinatra也不会知道这个小曲
- Gem Load Error是:未定义的方法`type_cast_from_database’用于类`ArJdbc :: MSSQL :: UUIDType’