Ho fatto un sacco di binari e lavoro rubino in passato (usando rvm, con molti tipi diversi di rubini), ma ultimamente non ho fatto alcun lavoro di rubino. Ho solo cercato di fare una nuova applicazione Rails per assicurarsi che le mie capacità non sono arrugginite, utilizzando la seguente configurazione:L'app New Rails tenta di usare jruby su "bundle install" quando mi aspetto che usi il ruby regolare, abbia errori?
Utilizzando il sistema di rubino:
which ruby: /usr/bin/ruby
ruby -v: ruby 1.8.7 (2008-08-11> patchlevel 72) [i586-linux]rails -v: Rails 3.0.7
quando digito: rotaie nuova TestApp ottengo un nuovo app per rails, con un Gemfile e tutto sembra a posto.
All'interno di TestApp, quando corro:
bundle install
ottengo:
Quello che mi frustra è:
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'
che sembra implicare che il fascio sta usando jruby (e l'errore mentre lo fa e non riescono a fare il mio pacchetto installare).
C'è qualcosa ovviamente che non va qui? Sto usando il file gem predefinito incluso con la nuova app di rotaie ... (trovato qui: http://pastie.org/2986869)
L'ultima volta che ho fatto funzionare alcune rotaie, tutto ha funzionato bene ... ma era un po 'di tempo fa (mesi , forse quasi un anno?). C'è qualcosa che sto dimenticando?
Edit:
che bundle:/home/jenny/bin/bundle che Rails:/home/jenny/bin/rotaie
Non credo a me stesso di essere utilizzando RVM in questo momento , ma solo per essere sicuro di aver fatto in modo che rvm fosse puntato sul ruby del sistema (quindi rvm o no, dovrebbe usare le stesse cose).
Edit: "Lista rvm" mi fa:
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 ]
che non sembra poi così grande, sia ... Cancellazione testa JRuby si libera di quel problema, ma ho ancora lo stesso problema fascio .
Modifica: l'eliminazione di TUTTI jruby rvms ha lo stesso risultato. Quindi, non sembra come il suo RVM che incasina le cose. Digitando quale jruby mi ottiene "/ home/jenny/bin/jruby". Ma ... normalmente se voglio usare jruby devo specificarlo (jruby rails, per esempio) .... bundle non dovrebbe usarlo di default, giusto?
Modifica (1/9/12): L'aggiornamento del pacchetto mi consente di ottenere un nuovo messaggio di errore (molto simile). In particolare "Errore di concorrenza, contenuto di array non valido a causa di modifiche non sincronizzate con utenti concorrenti" con la gemma "poliglotta". Almeno nessuna bizzarra stranezza. (Ho anche disinstallato tutto in rvm e reinstallato tutto, il che sembrava essere d'aiuto, e userò semplicemente rvm da qui in poi). Disinstallare polyglot e reinstallarlo non aiuta affatto.
Alla fine, ho disinstallato rvm, quindi reinstallato, disinstallato sia il mio sistema ruby che il mio sistema jruby, e installato solo ruby 1.9.2 in rvm e tutto ha funzionato. Accidenti.
Beh, almeno ho superato questo problema. Ora posso raggruppare, ma non creare nuovi modelli? Tempo per una nuova domanda, immagino.
Cosa restituisce? Quale pacchetto? 'che rotaie'? Stai * non * usando 'rvm' adesso? –
quale bundle:/home/jenny/bin/bundle che rotaie:/home/jenny/bin/rails Non credo di poter utilizzare RVM al momento, ma per essere sicuro di aver fatto in modo che rvm fosse indicò il sistema rubino (quindi rvm o no, dovrebbe usare le stesse cose). – Jenny
Indovinavo intendevo 'ls -l \' che rota \ '' per vedere se si tratta di un link simbolico. –