2011-09-11 18 views
11

He estado tratando de usar Rails y cuando uso Rake, obtengo este error. ¿Alguna sugerencia sobre qué tiempo de ejecución debo usar?Raíles, el rake no funciona

[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

haces todavía 'rake db: crear: todo'? ¿Has probado 'rake db: create'? Además, ¿obtiene el mismo error al intentar ejecutar el servidor (script/rails server for rails3, script/server for rails2)? –

Respuesta

0

Es necesario instalar el tiempo de ejecución de éstos .. algunas de las buenas opciones son

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)

se pueden encontrar más detalles en https://github.com/sstephenson/execjs

+2

'therubyracer' funcionó para mí. Yo uso Ubuntu –

+14

-1, ningún comando o solución directa proporcionada en absoluto, solo información general que solo me confunde como un principiante de rieles. – Tarrasch

+0

@tarrasch ¿por qué debería el cartel proporcionarle un comando para que pegue ciegamente en su caparazón? La serie de pasos depende de la distribución instalada y del paquete que desea instalar para cumplir con el requisito. –

31

Agregue esto a su Gemfile

gem 'therubyracer', require: "v8"

y ejecutar

bundle install

+2

Lo hago después de instalar la gema 'therubyracer' y, finalmente, funciona. Muchas gracias. – caarlos0

+2

Tuve que descomentar esta línea de mi GemFile –

+0

Merece la pena señalar que, al parecer, la instalación de la gema 'therubyracer' sola * no funciona * ... Uno pensaría que' execjs' seleccionaría automáticamente el mejor tiempo de ejecución disponible ([como afirma que] (https://github.com/sstephenson/execjs)), pero por alguna razón * debe * agregar la línea correspondiente a su 'Gemfile'. (Quizás esta es una 'característica' de Bundler, por la cual está ocultando gemas que no están en 'Gemfile'?) –

11

He instalado la gema therubyracer, execjs, Mustang, pero nada funcionó.

En mi linux (ubuntu) el comando

sudo apt-get install nodejs 

cumplió con su cometido, finalmente, para mí.

puede ser este post también podría ser útil: https://github.com/intridea/rails_wizard/issues/31

+0

gracias ... ¡solo esto funcionó para mí también! –

+0

¡Sí! Este fue el elegido. Ubuntu Rails321 ruby192 –

+0

Nota, para hacer que 'execjs'" detecte "la gema instalada para' therubyracer', * debes * agregar la siguiente línea a tu 'Gemfile':' gem 'therubyracer', requiere: "v8" '. Aparentemente, Bundler oculta el acceso a las gemas que no están especificadas allí (en el 'Gemfile'). Instalar 'nodejs' via' apt-get' por supuesto también funcionará (pero ese paquete no está disponible en todos los sistemas Linux, como la versión estable actual de Debian). –

Cuestiones relacionadas