W przeszłości wykonywałem wiele prac związanych z szynami i rubinami (przy użyciu rvm, z wieloma różnymi rodzajami rubinów), ale ostatnio nie wykonywałem żadnych prac rubinowych. Ja tylko starałem się zrobić nową aplikację szyn, aby upewnić się moje umiejętności nie są zardzewiałe, stosując następującą konfigurację:Nowa aplikacja Railsowa próbuje użyć jruby na "instalacji pakietu", kiedy oczekuję, że użyje zwykłego rubinu, zawiera błędy?
Korzystanie rubin systemową:
which ruby: /usr/bin/ruby
ruby -v: ruby 1.8.7 (2008-08-11> patchlevel 72) [i586-linux]rails -v: Rails 3.0.7
gdy wpisuję: Szyny nowy testapp mogę dostać nowy aplikacja szyny, z Gemfile i wszystko wydaje się w porządku.
Wewnątrz plikiem TestApp, kiedy biegnę:
bundle install
uzyskać:
Co frustruje mnie to:
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'
co wydaje się sugerować, że w wiązce używa jruby (i podczas tego błędu robi błędy i nie robi mojego pakietu zainstalować).
Czy coś tu jest oczywiście nie tak? Używam domyślnego pliku z klejnotami dołączonego do nowej aplikacji szyny ... (tutaj: http://pastie.org/2986869)
Ostatni raz robiłem prace na szynach, wszystko działało dobrze ... ale to było jakiś czas temu (miesiące , może prawie rok?). Czy jest coś, o czym zapominam?
Edit:
który pakiet:/home/jenny/bin/wiązka który szyn:/home/jenny/bin/szyny
Nie wierzę w siebie, aby być przy użyciu RVM w tej chwili , ale dla pewności upewniłem się, że rvm został wskazany na rubin systemowy (więc rvm czy nie, powinno używać tych samych rzeczy).
Edit: „lista RVM” dostaje mnie:
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 ]
które nie wygląda wszystko, co wielkie, albo ... Usuwanie jruby głowa pozbywa się tej kwestii, ale nadal mam ten sam problem bundle .
Edytuj: Usunięcie WSZYSTKICH jorych rvms ma taki sam efekt. Więc nie wygląda na to, że jego RVM psuje rzeczy. Wpisując, który z nich dostaje mnie "/ home/jenny/bin/jruby". Ale ... normalnie, jeśli CHCĘ używać jruby, muszę to określić (np. Poręcze) .... pakiet nie powinien go używać domyślnie, prawda?
Edytuj (1/9/12): Aktualizacja mojego programu ładującego powoduje, że otrzymuję nowy (bardzo podobny) komunikat o błędzie. Konkretnie "Błąd współbieżności, nieprawidłowa zawartość tablicy z powodu niezsynchronizowanych modyfikacji z jednoczesnymi użytkownikami" z klejnotem "polyglot". Przynajmniej nie ma dziwactwa. (I również odinstalowałem wszystko w rvm i ponownie zainstalowałem wszystko, co zdawało się pomagać, i od teraz używam rvm). Odinstalowanie poliglota i ponowne zainstalowanie go wcale nie pomaga.
W końcu odinstalowałem rvm, a następnie zainstalowałem go ponownie, odinstalowałem zarówno systemowy ruby, jak i mój system jruby, i zainstalowałem tylko ruby 1.9.2 w rvm i wszystko działało. Whew.
Cóż, przynajmniej przeszedłem przez ten problem. Teraz mogę pakować, ale nie tworzyć nowych modeli? Czas na nowe pytanie, tak myślę.
Co zwróci 'który pakiet'? 'który szynach'? Czy teraz nie używasz 'rvm'? –
który pakiet:/home/jenny/bin/bundle z szynami:/home/jenny/bin/rails Nie wierzę, że używam RVM w tej chwili, ale po to, aby upewnić się, że upewniłem się, że rvm było wskazał na systemowy ruby (więc rvm czy nie, powinien używać tych samych rzeczy). – Jenny
Chyba chodziło o 'ls -l \', który szyny \ '', aby zobaczyć, czy jest to dowiązanie symboliczne. –