2012-03-09 8 views
10

Tengo problemas para configurar Ruby on Rails en mi máquina. He estado siguiendo el libro "Desarrollo web ágil con rieles" y hasta ahora todo ha ido bien.necesito ayuda para configurar ruby ​​on rails javascript runtime environment

El problema que estoy teniendo es que cuando escribo

rails server 

me sale el siguiente error:

/home/myname/.gem/ruby/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable) 
from /home/myname/.gem/ruby/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>' 
from /home/myname/.gem/ruby/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>' 
from /usr/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require' 
from /usr/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>' 
from /usr/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require' 
from /usr/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>' 
from /usr/lib/ruby/gems/1.9.1/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `require' 
from /usr/lib/ruby/gems/1.9.1/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `<top (required)>' 
from /home/myname/.gem/ruby/1.9.1/gems/bundler-1.1.0/lib/bundler/runtime.rb:68:in `require' 
from /home/myname/.gem/ruby/1.9.1/gems/bundler-1.1.0/lib/bundler/runtime.rb:68:in `block (2 levels) in require' 
from /home/myname/.gem/ruby/1.9.1/gems/bundler-1.1.0/lib/bundler/runtime.rb:66:in `each' 
from /home/myname/.gem/ruby/1.9.1/gems/bundler-1.1.0/lib/bundler/runtime.rb:66:in `block in require' 
from /home/myname/.gem/ruby/1.9.1/gems/bundler-1.1.0/lib/bundler/runtime.rb:55:in `each' 
from /home/myname/.gem/ruby/1.9.1/gems/bundler-1.1.0/lib/bundler/runtime.rb:55:in `require' 
from /home/myname/.gem/ruby/1.9.1/gems/bundler-1.1.0/lib/bundler.rb:118:in `require' 
from /home/myname/Programming/Learning/Learning_Rails/demo/config/application.rb:7:in `<top (required)>' 
from /home/myname/.gem/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:53:in `require' 
from /home/myname/.gem/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:53:in `block in <top (required)>' 
from /home/myname/.gem/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:50:in `tap' 
from /home/myname/.gem/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:50:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

Está diciendo que no puede encontrar un entorno de ejecución de Javascript. Fui al sitio web que me recomendó el mensaje de error y busqué en Google y leí que las execjs serían una buena opción para instalar. He instalado execjs con los siguientes comandos:

sudo gem install execjs 
sudo gem update 

Cuando corro 'lista joya' Me da la siguiente salida:

*** LOCAL GEMS *** 

actionmailer (3.2.2) 
actionpack (3.2.2) 
activemodel (3.2.2) 
activerecord (3.2.2) 
activeresource (3.2.2) 
activesupport (3.2.2) 
arel (3.0.2) 
bigdecimal (1.1.0) 
builder (3.0.0) 
bundler (1.1.0) 
coffee-rails (3.2.2) 
coffee-script (2.2.0) 
coffee-script-source (1.2.0) 
erubis (2.7.0) 
execjs (1.3.0 ruby) 
hike (1.2.1) 
i18n (0.6.0) 
io-console (0.3) 
journey (1.0.3) 
jquery-rails (2.0.1) 
json (1.6.5, 1.5.4) 
mail (2.4.3) 
mime-types (1.17.2) 
minitest (2.11.3, 2.5.1) 
multi_json (1.1.0) 
polyglot (0.3.3) 
rack (1.4.1) 
rack-cache (1.2) 
rack-ssl (1.3.2) 
rack-test (0.6.1) 
rails (3.2.2) 
railties (3.2.2) 
rake (0.9.2.2) 
rdoc (3.12, 3.9.4) 
sass (3.1.15) 
sass-rails (3.2.4) 
sprockets (2.3.1, 2.1.2) 
sqlite3 (1.3.5) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10) 
tzinfo (0.3.32) 
uglifier (1.2.3) 

Desde la salida por encima de lo que parece a mí como execjs está instalado. ¿Qué está pasando aquí y por qué estoy recibiendo este error?

Si es útil en absoluto,

Mi sistema operativo es Linux del arco.

ruby ​​-v: serían apreciados Rieles 3.2.2

Cualquier ayuda: rubí 1.9.3p125 (2012-02-16 revisión 34643) [x86_64-linux]

carriles -v.

Respuesta

11

Su Gemfile debe contener ambas de las siguientes líneas:

gem 'execjs' 
gem 'therubyracer' 

A continuación, ejecute bundle install y vuelva a intentarlo.

+0

Gracias, ese era el problema. Todo está funcionando ahora. – martega

1

Creo que necesita un tiempo de ejecución como rubyracer. Trate

sudo gem install therubyracer 
+0

lo he intentado y este fue el resultado: ' $ bundle install execjs "Instalar" fue llamado incorrectamente. Llamar como "paquete de instalación" .' – martega

+0

Editado para especificar un tiempo de ejecución js. – Sebi

+0

Desafortunadamente, ya lo intenté. Mismo problema :( – martega

5

Si va a agregar therubyracer gema, puede ser su problema woould ser resuelto

Código

gem 'therubyracer' 
gem 'execjs' 

a continuación, sólo hacer un bundle install

+0

He intentado ejecutar el comando gema 'therubyracer' pero recibí un error que decía que therubyracer es un comando desconocido. Lo mismo ocurre si ejecuto gem 'execjs'. ¿Te malentendí? – martega

+0

¡Gracias! Parece que está funcionando ahora. – martega

3

Prueba esto:

$ sudo apt-get install nodejs 
1

Si estás usando el administrador de paquetes Pacman que deberías usar:

# pacman -S nodejs 

o

$ sudo pacman -S nodejs 
0

que había instalado antes de Node.js rieles. Ahora usa Node.js como el tiempo de ejecución de javascript por sí mismo.

JavaScript Runtime Node.js (V8)