10

自分のマシンで ruby​​ on rails をセットアップするのに問題があります。私は「Rails を使用したアジャイル Web 開発」という本を読んでいますが、今まではすべて順調に進んでいます。

私が抱えている問題は、入力するときです

rails server

次のエラーが表示されます。

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

javascript ランタイム環境が見つからないと言っています。エラーメッセージが推奨するWebサイトにアクセスし、グーグルで調べたところ、execjsがインストールに適していることがわかりました。次のコマンドで execjs をインストールしました。

sudo gem install execjs
sudo gem update

「gem list」を実行すると、次の出力が得られます。

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

上記の出力から、execjs がインストールされているように見えます。ここで何が起こっていて、なぜこのエラーが発生するのですか?

少しでも参考になれば、

私のOSはArch Linuxです。

ruby -v: ruby​​ 1.9.3p125 (2012-02-16 リビジョン 34643) [x86_64-linux]

rails -v: Rails 3.2.2

どんな助けでも大歓迎です。

4

6 に答える 6

11

Gemfile には、次の行の両方が含まれている必要があります。

gem 'execjs'
gem 'therubyracer'

その後、実行bundle installして再試行してください。

于 2012-03-09T10:16:59.567 に答える
5

therubyracer gem を追加すると、問題が解決する可能性があります

コード

gem 'therubyracer'
gem 'execjs'

それからちょうどbundle install

于 2012-03-09T10:20:03.473 に答える
3

これを試して:

$ sudo apt-get install nodejs
于 2012-03-29T00:00:22.097 に答える
1

Pacmanパケットマネージャーを使用している場合は、以下を使用する必要があります。

# pacman -S nodejs 

また

$ sudo pacman -S nodejs
于 2012-05-28T18:21:50.307 に答える
1

rubyracer のようなランタイムが必要だと思います。試す

sudo gem install therubyracer
于 2012-03-09T10:07:48.250 に答える
0

Rails の前に Node.js をインストールしました。Node.js を JavaScript ランタイムとして単独で使用するようになりました。

JavaScript Runtime  Node.js (V8)
于 2012-07-12T02:42:08.690 に答える