2011-12-08 26 views
5

Tôi đã làm rất nhiều đường ray và công việc ruby ​​trong quá khứ (sử dụng rvm, với nhiều loại khác nhau của hồng ngọc), nhưng gần đây đã không thực hiện bất kỳ công việc ruby ​​ở tất cả. Tôi chỉ cố gắng để tạo ra một ứng dụng ray mới để đảm bảo kỹ năng của tôi không gỉ, sử dụng thiết lập sau:Ứng dụng New Rails cố gắng sử dụng jruby trên "gói cài đặt" khi tôi mong đợi nó sử dụng ruby ​​thông thường, có lỗi?

Sử dụng hệ thống ruby:

which ruby: /usr/bin/ruby
ruby -v: ruby 1.8.7 (2008-08-11> patchlevel 72) [i586-linux]

rails -v: Rails 3.0.7

khi tôi gõ: ray TestApp mới tôi nhận được một mới ứng dụng đường ray, với Gemfile và mọi thứ có vẻ ổn.

Bên trong TestApp, khi tôi chạy:

bundle install

tôi nhận được:

http://pastie.org/2986861

gì thất vọng với tôi là:

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' 

Mà dường như ngụ ý rằng bó đang sử dụng jruby (và lỗi trong khi thực hiện nó và không thực hiện được gói của tôi cài đặt, dựng lên).

Có điều gì rõ ràng sai ở đây không? Tôi đang sử dụng tập tin đá quý mặc định đi kèm với ứng dụng đường ray mới ... (tìm thấy ở đây: http://pastie.org/2986869)

Lần cuối cùng tôi làm mọi công việc, mọi thứ hoạt động tốt ... , có thể gần một năm?). Có điều gì tôi quên không?

Edit:

mà bó:/home/jenny/bin/bó mà ray:/home/jenny/bin/ray

Tôi không tin rằng bản thân mình để được sử dụng RVM vào lúc này , nhưng chỉ để chắc chắn rằng tôi đã chắc chắn rằng rvm đã được chỉ vào hệ thống ruby ​​(vì vậy rvm hoặc không, nó nên được sử dụng những điều tương tự).

Chỉnh sửa: "danh sách RVM" được tôi:

rvm list

rvm rubies

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 ]Exception in thread "main" java.lang.NoClassDefFoundError: org/jruby/Main Caused by: java.lang.ClassNotFoundException: org.jruby.Main at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:319) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:264) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332) Could not find the main class: org.jruby.Main. Program will exit.

jruby-head [ ]

jruby-1.6.2 [ linux-i386-java ]

jruby-1.4.0 [ i386-java ]

mà không giống tất cả những gì vĩ đại, một trong hai ... Xóa đầu JRuby được thoát khỏi vấn đề đó, nhưng tôi vẫn còn có vấn đề tương tự bó .

Chỉnh sửa: Xóa tất cả rvms jruby có cùng kết quả. Vì vậy, nó không giống như những thứ RVM rối tung lên. Đánh máy mà jruby được tôi "/ home/jenny/bin/jruby". Nhưng ... bình thường nếu tôi muốn sử dụng jruby tôi phải xác định nó (đường ray jruby, ví dụ) .... bó không nên sử dụng nó theo mặc định, phải không?

Chỉnh sửa (1/9/12): Cập nhật trình kích hoạt của tôi cho tôi một thông báo lỗi mới (rất giống). Cụ thể là "Lỗi đồng thời, nội dung mảng không hợp lệ do sửa đổi không đồng bộ với người dùng đồng thời" với đá quý "đa". Ít nhất không có sự kỳ quặc. (Tôi cũng gỡ bỏ cài đặt tất cả mọi thứ trong rvm và cài đặt lại tất cả mọi thứ, mà dường như để giúp đỡ, và tôi sẽ chỉ sử dụng rvm từ đây trên ra). Gỡ cài đặt polyglot và cài đặt lại nó sẽ không giúp gì cả.

Cuối cùng, tôi đã gỡ cài đặt rvm, sau đó cài đặt lại, gỡ cài đặt cả hệ thống ruby ​​và hệ thống jruby của tôi và chỉ cài đặt ruby ​​1.9.2 trong rvm và mọi thứ đã hoạt động. Whew.

Vâng, ít nhất tôi đã gặp phải vấn đề này. Bây giờ tôi có thể bó, nhưng không tạo mô hình mới? Thời gian cho một câu hỏi mới, tôi đoán.

+1

Trả lại của gói nào? 'mà rails'? Bạn có * không * bằng cách sử dụng 'rvm' bây giờ không? –

+0

gói nào:/home/jenny/bin/bundle có đường ray:/home/jenny/bin/rails Tôi không tin tưởng mình đang sử dụng RVM vào lúc này, nhưng chỉ để chắc chắn rằng rvm là chỉ vào hệ thống ruby ​​(vì vậy rvm hoặc không, nó nên được sử dụng những điều tương tự). – Jenny

+0

Đoán tôi có nghĩa là 'ls -l \' mà rails \ '' để xem nếu nó là một liên kết tượng trưng. –

Trả lời

1

Nơi đã làm bundle trong số $HOME/bin của bạn đến từ đâu? Có phải đó là một liên kết tượng trưng đến một tệp trong cây thư mục .rvm của bạn ở đâu đó hay là một tập lệnh? Nếu đó là kịch bản, thì dòng đầu tiên (shebang) là gì? Có lẽ nó được thiết lập để luôn chạy trong JRuby?

Tôi đã nhìn thấy loại "sai Ruby" này xảy ra trước đây, hoặc thông qua một thực thi ở đâu đó trong số $PATH của tôi trước Ruby Tôi muốn, hoặc thông qua RVM chỉ đơn giản là đi vào cỏ dại và cài đặt đá quý cho sai địa điểm.

Nếu nó là máy tính của tôi, tôi muốn cố gắng loại bỏ những vũng có thể (J) Hồng ngọc mà có thể ảnh hưởng một trong những Tôi đang cố gắng để chạy, một cái gì đó như thế này:

  1. Move ruby , jruby, gem, bundle và mọi tệp thi hành liên quan đến Ruby khác từ $HOME/bin của tôi vào thư mục sao lưu không nằm trên số $PATH của tôi.
  2. Đổi tên số $HOME/.rvm cây thành một thứ không nằm trên số $PATH của tôi.
  3. Cài đặt lại bản sao mới RVM hoặc rbenv và chỉ thêm các phiên bản Ruby tôi cần.
1

Thêm tệp .rvmrc vào thư mục ray với các nội dung:

rvm ruby-1.9.2-p136 

sau đó cd .. và sau đó cd vào đường ray ứng dụng đó nữa. (Tôi khuyên bạn nên nâng cấp lên 1.9.2-p290)

+0

và sử dụng đường ray 3.1 nếu bắt đầu một ứng dụng mới. – Robin

0

Có thể nâng cấp lên bộ đóng gói mới nhất sẽ giúp ích? tại thời điểm này.

Bạn đang sử dụng 1.0.13.

Đảm bảo rằng nó được cài đặt cho 1,8,7 ruby ​​của bạn.

Các vấn đề liên quan