Jen*_*nny 5 ruby jruby ruby-on-rails-3
我过去做了很多rails和ruby工作(使用rvm,有许多不同类型的红宝石),但最近还没有完成任何ruby工作.我只是尝试制作一个新的rails应用程序,以确保我的技能不生锈,使用以下设置:
使用系统ruby:
哪个ruby:/ usr/bin/ruby
ruby -v:ruby 1.8.7(2008-08-11> patchlevel 72)[i586-linux]rails -v:Rails 3.0.7
当我输入:rails new TestApp我得到一个新的rails应用程序,带有Gemfile,一切似乎都很好.
在TestApp内部,当我运行时:
捆绑安装
我明白了:
令我沮丧的是:
org/jruby/RubyArray.java:1671:in `each': Detected invalid array contents due to unsynchronized modifications with concurrent users (ConcurrencyError)
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/spec_set.rb:12:in `each'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/installer.rb:49:in `run'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/installer.rb:8:in `install'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/cli.rb:222:in `install'
from org/jruby/RubyObject.java:1334:in `send'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor/task.rb:21:in `run'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor.rb:246:in `dispatch'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/lib/bundler/vendor/thor/base.rb:389:in `start'
from /home/jenny/lib/ruby/gems/1.8/gems/bundler-1.0.13/bin/bundle:13:in `(root)'
from org/jruby/RubyKernel.java:1066:in `load'
Run Code Online (Sandbox Code Playgroud)
这似乎意味着捆绑包使用jruby(并且在执行此操作时出错并且无法执行我的捆绑安装).
这里有什么明显的错误吗?我正在使用新的rails应用程序附带的默认gem文件...(在这里找到:http://pastie.org/2986869)
我最后一次做任何轨道工作,一切都很好......但那是不久前(几个月,也许近一年?).有什么我忘了吗?
编辑:
哪个bundle:/ home/jenny/bin/bundle哪个rails:/ home/jenny/bin/rails
我不相信自己目前正在使用RVM,但只是为了确保我确保rvm指向系统ruby(所以rvm或不,它应该使用相同的东西).
编辑:"rvm list"让我:
rvm列表
rvm红宝石
Run Code Online (Sandbox Code Playgroud)ruby-1.9.2-p136 [ i386 ]jruby-1.3.1 [i386-java]
jruby-1.5.6 [i386-java]
ruby-1.9.2-p0 [i386]
ruby-1.9.2-rc1 [i386]
jruby-1.2.0 [i386-java]
jruby-1.6.1 [linux-i386-java]线程"main"中的异常java.lang.NoClassDefFoundError:org/jruby/Main引起:java.lang.ClassNotFoundException:org.jruby.Main at java.net.URLClassLoader $ 1 .run(URLClassLoader.java:217)在java.security.AccessController.doPrivileged(Native Method)java.net.URLClassLoader.findClass(URLClassLoader.java:205)java.lang.ClassLoader.loadClass(ClassLoader.java:319) )at.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:294)at java.lang.ClassLoader.loadClass(ClassLoader.java:264)at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)找到主类:org.jruby.Main.程序将会退出.
jruby-head []
jruby-1.6.2 [linux-i386-java]
jruby-1.4.0 [i386-java]
这看起来并不那么好,或者......删除jruby head摆脱了这个问题,但我仍然有相同的捆绑问题.
编辑:删除所有jruby rvms具有相同的结果.所以,它并不像它的RVM搞砸了.打字哪个jruby让我"/ home/jenny/bin/jruby".但是......通常如果我想使用jruby我必须指定它(例如jruby rails)....默认情况下bundle不应该使用它,对吧?
编辑(1/9/12):更新我的bundler会给我一个新的(非常相似的)错误消息.特别是"并发错误,由于与并发用户的不同步修改导致的无效数组内容"与gem"polyglot".至少没有犹豫不决的怪异.(我还卸载了rvm中的所有内容并重新安装了所有内容,这似乎有所帮助,而且我将从这里开始使用rvm).卸载多语言并重新安装它根本没有用.
最后,我卸载了rvm,然后重新安装它,卸载了我的系统ruby和我的系统jruby,并在rvm中只安装了ruby 1.9.2并且一切正常.呼.
好吧,至少我遇到了这个问题.现在我可以捆绑,但不能制作新模型?我想是时候提出一个新问题了.
bundle你的这个是从哪里来$HOME/bin的?它是指向目录树中某个文件的符号链接.rvm,还是脚本?如果是脚本,第一行(shebang)是什么?也许它设置为始终在 JRuby 中运行?
我以前见过这种“错误的 Ruby”事情发生过,要么是通过我$PATH想要的 Ruby 之前的某个可执行文件,要么是通过 RVM 直接将 gem 安装到错误的位置。
如果这是我的机器,我会尝试消除可能干扰我尝试运行的(J)红宝石池,如下所示:
ruby、jruby、gem、bundle和任何其他与 Ruby 相关的可执行文件从 my移动$HOME/bin到不在 my 上的备份目录$PATH。$HOME/.rvm树重命名为我的$PATH.| 归档时间: |
|
| 查看次数: |
896 次 |
| 最近记录: |