2013-03-20 7 views
4

Я создал новое приложение Rails. Когда я пытаюсь запустить сервер, я получаю следующую ошибку:ExecJS :: RuntimeUnavailable ошибка при запуске сервера Rails

[[email protected] samp]$ rails server 
/home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.13/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /usr in PATH, mode 040777 
/home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler/runtime.rb:216: warning: Insecure world writable dir /usr in PATH, mode 040777 
/home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable) 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/execjs-1.4.0/lib/execjs.rb:4:in `<top (required)>' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `<top (required)>' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `block (2 levels) in require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `each' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `block in require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `each' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.4/lib/bundler.rb:132:in `require' 
    from /home/bathakarai/gold/Ruby/Practice/Rails/samp/config/application.rb:7:in `<top (required)>' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.13/lib/rails/commands.rb:53:in `require' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.13/lib/rails/commands.rb:53:in `block in <top (required)>' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap' 
    from /home/bathakarai/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

Как исправить эту ошибку?

ответ

3

Попробуйте

sudo gem install therubyracer 

или

gem install therubyracer 

Надеется, что это помогает

+1

После установки драгоценного камня, выполните команду установки пучка или пучка. После успешной установки добавьте строку gem 'therubyracer' 'в Gemfile, которая находится внутри проекта – Bathakarai

+0

OK, но что, если я не использую скрипт для кофе и не хочу execjs? Звездочки зависят от execjs, но для рельсов 4 нужны звездочки? Могу я просто вытащить вилку на execjs? – Ziggy

+0

Отличное решение @ Bathakarai! [Здесь] (https://gist.github.com/lucio-martinez/23110e3618c1bac7f641) является фрагментом, чтобы быстро решить его :-) – Lucio

9

Если вы только что сгенерировали новое приложение, это может возникнуть, когда будет отмечен камень therubyracer. Это необходимо для компиляции ваших активов. Вы можете раскомментировать это или установить что-то вроде nodejs, поэтому вам не нужно использовать драгоценный камень во всех ваших проектах.

brew install nodejs 
# or 
sudo apt-get install nodejs 
+0

Для установки nodejs оба предложения не работают @jvnill – Bathakarai

+0

Возможно, вы используете окна? – jvnill

1

Самого популярное во время выполнения JavaScript является therubyracer, который является жемчужиной. Как @muttonlambsaid, установите его работы:

gem install therubyracer 

Тогда, как Bathakaraimentioned, добавьте следующую строку в ваш Gemfile в нижней части файла:

gem 'therubyracer' 

Теперь запустите rails server снова и все должно работать.

Чтобы упростить процесс, вы можете запустить a script, чтобы сгенерировать приложение и автоматически добавить среду выполнения JS.

Смежные вопросы