簡體   English   中英

當我希望它使用常規ruby時,New Rails應用嘗試在“bundle install”上使用jruby,有錯誤嗎?

[英]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內部,當我運行時:

捆綁安裝

我明白了:

http://pastie.org/2986861

令我沮喪的是:

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/binbundle來自哪里? 它是某個.rvm目錄樹中某個文件的符號鏈接,還是一個腳本? 如果它是一個腳本,第一個(shebang)線上有什么? 也許它總是在JRuby中運行?

我之前發現過這種“錯誤的Ruby”事情,或者通過我想要的Ruby之前的$PATH的可執行文件,或者通過RVM進入雜草並將寶石安裝到錯誤的位置。

如果它是我的機器,我會嘗試消除可能會干擾我試圖運行的可能(J)紅寶石池,如下所示:

  1. rubyjrubygembundle以及任何其他與Ruby相關的可執行文件從我的$HOME/bin到不在我的$PATH上的備份目錄。
  2. $HOME/.rvm樹重命名為不在$PATH
  3. 重新安裝一個新的副本RVM或rbenv並添加我需要的Ruby版本。

也許升級到最新的捆綁包會有幫助嗎? 目前它在1.0.21。

您正在使用1.0.13。

確保為1.8.7紅寶石安裝它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM