2011-09-11 4 views
11

Ho cercato di utilizzare Rails e quando uso il rake, ottengo questo errore. Qualche suggerimento su quale runtime dovrei usare?Rails, rake non funziona

[email protected]:~/RailsProjects/webuiltit$ rake db:create:all --trace 
rake aborted! 
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.4/lib/execjs/runtimes.rb:45:in `autodetect' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.4/lib/execjs.rb:5:in `<module:ExecJS>' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.4/lib/execjs.rb:4:in `<top (required)>' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/coffee-rails-3.1.0/lib/coffee-rails.rb:1:in `require' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/coffee-rails-3.1.0/lib/coffee-rails.rb:1:in `<top (required)>' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:68:in `require' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:68:in `block (2 levels) in require' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:66:in `each' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:66:in `block in require' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:55:in `each' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:55:in `require' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler.rb:120:in `require' 
/home/ngzhongqin/RailsProjects/webuiltit/config/application.rb:13:in `<top (required)>' 
/home/ngzhongqin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
/home/ngzhongqin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
/home/ngzhongqin/RailsProjects/webuiltit/Rakefile:5:in `<top (required)>' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load_rakefile' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:495:in `raw_load_rakefile' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:78:in `block in load_rakefile' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:77:in `load_rakefile' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:61:in `block in run' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/bin/rake:32:in `<top (required)>' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/bin/rake:19:in `load' 
/home/ngzhongqin/.rvm/gems/ruby-1.9.2-p290/bin/rake:19:in `<main>' 
+0

ci fai ancora 'rake db: creare: tutto'? hai provato 'rake db: create'? Inoltre, si ottiene lo stesso errore cercando di eseguire il server (server script/rails per rails3, script/server per rails2)? –

risposta

0

È necessario installare il runtime per questi .. alcune delle buone opzioni sono

therubyracer - Google V8 embedded within Ruby

therubyrhino - Mozilla Rhino embedded within JRuby

Johnson - Mozilla SpiderMonkey embedded within Ruby

Mustang - Mustang V8 embedded within Ruby

Node.js

Apple JavaScriptCore - Included with Mac OS X

Mozilla SpiderMonkey

Microsoft Windows Script Host (JScript)

è possibile trovare maggiori dettagli a https://github.com/sstephenson/execjs

+2

'therubyracer' ha funzionato per me. Io uso Ubuntu –

+14

-1, nessun comando o soluzione diretta fornita di sorta, solo informazioni generali che mi confondono solo come principiante di rotaie. – Tarrasch

+0

@tarrasch perché il poster dovrebbe fornire un comando per incollare ciecamente nel tuo guscio? La serie di passaggi dipende dalla distribuzione installata e dal pacchetto che si desidera installare per soddisfare i requisiti. –

31

Aggiungi questo al vostro Gemfile

gem 'therubyracer', require: "v8"

ed eseguire

bundle install

+2

Lo faccio dopo aver installato la gemma 'therubyracer' e, infine, funziona. Grazie mille. – caarlos0

+2

Ho dovuto decommentare questa riga dal mio GemFile –

+0

Vale la pena notare, apparentemente l'installazione di 'gemello therubyracer' da solo * non fa il trucco * ... Si potrebbe pensare che" execjs "avrebbe" automaticamente selezionato il miglior runtime disponibile "([come dichiara a] (https://github.com/sstephenson/execjs)), ma per qualche ragione * devi * aggiungere la riga pertinente al tuo 'Gemfile'. (Forse questa è una 'caratteristica' di Bundler, per cui nasconde le gemme non in 'Gemfile'?) –

11

Ho installato la gemma therubyracer, execjs, mustang ma niente ha funzionato.

Sul mio Linux (Ubuntu) il comando

sudo apt-get install nodejs 

ha fatto il lavoro, infine, per me.

può essere questo post potrebbe anche essere utile: https://github.com/intridea/rails_wizard/issues/31

+0

grazie .. solo questo ha funzionato anche per me! –

+0

Sì! Questo era quello. Ubuntu Rails321 ruby192 –

+0

Nota: per ottenere 'execjs' per" rilevare "la gemma installata per' therubyracer', devi * aggiungere la seguente riga al tuo 'Gemfile':' gem 'therubyracer', richiede: "v8" '. Apparentemente Bundler nasconde l'accesso alle gemme che non sono specificate lì (nel 'Gemfile'). Ovviamente, anche l'installazione di 'nodejs' tramite' apt-get' funzionerà (ma quel pacchetto non è disponibile su tutti i sistemi Linux, come l'attuale versione stabile di Debian). –