[英]New Rails app tries to use jruby on “bundle install” when I expect it to use regular ruby, has errors?
我過去做了很多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'
這似乎意味着捆綁包使用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紅寶石
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並且一切正常。 呼。
好吧,至少我遇到了這個問題。 現在我可以捆綁,但不能制作新模型? 我想是時候提出一個新問題了。
使用以下內容將.rvmrc文件添加到rails目錄:
rvm ruby-1.9.2-p136
然后cd ..然后再次進入rails應用程序。 (我建議升級到1.9.2-p290)
$HOME/bin
的bundle
來自哪里? 它是某個.rvm
目錄樹中某個文件的符號鏈接,還是一個腳本? 如果它是一個腳本,第一個(shebang)線上有什么? 也許它總是在JRuby中運行?
我之前發現過這種“錯誤的Ruby”事情,或者通過我想要的Ruby之前的$PATH
的可執行文件,或者通過RVM進入雜草並將寶石安裝到錯誤的位置。
如果它是我的機器,我會嘗試消除可能會干擾我試圖運行的可能(J)紅寶石池,如下所示:
ruby
, jruby
, gem
, bundle
以及任何其他與Ruby相關的可執行文件從我的$HOME/bin
到不在我的$PATH
上的備份目錄。 $HOME/.rvm
樹重命名為不在$PATH
。 也許升級到最新的捆綁包會有幫助嗎? 目前它在1.0.21。
您正在使用1.0.13。
確保為1.8.7紅寶石安裝它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.