2012-03-09 13 views
10

Mam problem z konfigurowaniem ruby ​​na szynach na moim komputerze. Śledziłem książkę "Agile Web Development with Rails" i do tej pory wszystko układało się dobrze.Potrzebuję pomocy przy konfigurowaniu ruby ​​na szynach Środowisko wykonawcze javascript

Problem mam jest to, że po wpisaniu

rails server 

pojawia się następujący błąd:

/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>' 

on mówi, że nie może znaleźć środowiska wykonawczego języka JavaScript. Poszedłem na stronę internetową, że zalecany jest komunikat o błędzie i zrobiłem trochę google'a i przeczytałem, że execjs będzie dobrym wyborem do zainstalowania. Zainstalowałem execjs z następującymi poleceniami:

sudo gem install execjs 
sudo gem update 

Kiedy uruchamiam „gem listy” pojawia się następujący komunikat:

*** 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) 

z wyjścia powyżej wygląda mi jak jest zainstalowany execjs. Co się tutaj dzieje i dlaczego dostaję ten błąd?

Jeśli jest to pomocne,

Mój system operacyjny to Arch Linux.

rubin -v: będzie docenione Szyny 3.2.2

Każda pomoc Ruby 1.9.3p125 (2012-02-16 wersja 34643) [x86_64-Linux]

szyny -v.

Odpowiedz

11

Twój Gemfile powinny zawierać oba z następujących linii:

gem 'execjs' 
gem 'therubyracer' 

Następnie uruchom bundle install i spróbuj ponownie.

+0

Dzięki, to był problem.To wszystko działa teraz – martega

1

Myślę, że potrzebujesz środowiska wykonawczego takiego jak Rubyracer. Spróbuj

sudo gem install therubyracer 
+0

Próbowałem tego i to był wynik: '$ pakiet zainstalować execjs "Install" zostało nazwane niepoprawnie. Wywołanie jako "instalacja pakietu". ' – martega

+0

Edytowane w celu określenia środowiska wykonawczego js. – Sebi

+0

Niestety, już tego próbowałem. Ten sam problem :( – martega

5

Jeśli dodasz therubyracer gem, może być problem woould być rozwiązany

Code

gem 'therubyracer' 
gem 'execjs' 

potem po prostu zrobić bundle install

+0

Próbowałem biegać klejnot 'therubyracer', ale mam błąd mówiąc, że termubirat jest nieznanym rozkazem.To samo dzieje się, gdy uruchomię gem 'execjs'. Czy źle cię zrozumiałem? – martega

+0

Dzięki! Wygląda na to, że działa teraz. – martega

3

Spróbuj tego:

$ sudo apt-get install nodejs 
1

Jeśli używasz menedżera pakietów Pacman, którego powinieneś użyć:

# pacman -S nodejs 

lub

$ sudo pacman -S nodejs 
0

ja zainstalowany node.js przed Rails. Teraz sam używa Node.js jako środowiska wykonawczego javascript.

JavaScript Runtime Node.js (V8) 
Powiązane problemy