新しいRails app in folder'issues 'を作成しましたが、' Ruby s 'を実行したいときに、エラーが発生しました。助けていただければ幸いです。
[thiago@netbox issues]$ Rails s
/home/thiago/.rvm/gems/Ruby-1.9.3-p429/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/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/execjs-1.4.0/lib/execjs.rb:4:in `<top (required)>'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-Rails-3.2.2/lib/coffee-Rails.rb:1:in `require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-Rails-3.2.2/lib/coffee-Rails.rb:1:in `<top (required)>'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
from /home/thiago/Documents/wdi/Rails_practice/issues/config/application.rb:7:in `<top (required)>'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/railties-3.2.13/lib/Rails/commands.rb:53:in `require'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/railties-3.2.13/lib/Rails/commands.rb:53:in `block in <top (required)>'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/railties-3.2.13/lib/Rails/commands.rb:50:in `tap'
from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/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>'
'therubyracer' gemをGemfileに追加してから、 '$ bundle install' Works!
Gemfile
source 'https://rubygems.org'
gem 'Rails', '3.2.8'
gem 'sqlite3'
group :assets do
gem 'sass-Rails', '~> 3.2.3'
gem 'coffee-Rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-Rails'
gem 'therubyracer' # added
1月にRails)で作業を開始したとき、WindowsとUbuntuの両方で同じエラーが発生しました。エラーは非常に単純です。サーバーを起動するにはJavaScriptランタイム環境が必要です。
これには多くの解決策があります。私がUbuntuで使用しているのは、NodeJSをインストールすることです。
Ubuntuでは、次のようなものを実行してNodeJSをインストールします。
Sudo add-apt-repository ppa:chris-lea/node.js
Sudo apt-get -y update
Sudo apt-get -y install nodejs
これらは、NodeJSの最新の安定バージョンをインストールするために使用するコマンドですが、Sudo apt-get -y install nodejs
を実行するだけで問題ありません。
Windowsでは、私が使用した答えは、他にもあるかもしれませんが、Gemfileを編集してtherubyracerをインストールすることでした。私は現在Rails 4.0 RC1アプリに取り組んでおり、それらはすべて、コメントアウトされたばかりのGemfileにすでにgem 'therubyracer', platform: :Ruby
があります。
Windowsで実行している場合は、Gemfileにgem 'therubyracer'
を追加するだけで、実行できるようになります。次に、bundle install
を実行します。
JavaScriptランタイムが見つかりません。 Gemfileに1つもないと思います。 Gemfileを編集して追加してみてください
gem 'therubyracer'
そして、実行します
$ bundle install
Javascriptインタープリターをインストールする必要があります。
これをGemfileに追加します。
gem "libv8", ">= 3.11.8"
gem "therubyracer", ">= 0.11.0", :group => :assets, :platform => :Ruby, :require => "v8"
また、Node.jsのような他のオプションを本番用にチェックすることもできますが、開発用にはそれで十分です。
[...];"C:\Program Files\nodejs\";[...]
)。これにより、where
とExecJSがパスエントリを理解できなくなり、最終的にnode.js実行可能ファイルが見つかりません。インストールされたNodeJS実行するディレクトリへ[〜#〜] not [〜#〜]スペースを含める(例:C:\development\nodejs\
)...理由はどこ(Windowsバージョンの)それぞれのエントリが引用符で囲まれている場合、PATHで実行可能ファイルを見つけることができませんでした
where node
がノード実行可能ファイル(例:C:\development\nodejs\node.exe
)を返したことを確認しました(NodeJSが見つからない場合、execJSもおそらくそれを見つけられません)where node
がエラーを返した場合は、PATH変数を確認してください。 NodeJSのエントリを先頭に移動し、引用符は使用しないでください
それぞれの行をgem 'therubyracer', :platforms => :Ruby
に変更してtherubyracerをGemfileから除外しました(前述のとおり)。これにより、therubyracerはLinux /本番環境にインストールされますが、ローカルWindows環境にはインストールされません。
gemfile.lockを削除し、gemfilesをクリーンインストールするためにbundle install
を呼び出しました
開始Rails with Rails server
/home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/execjs-1.4.0/lib/execjs/runtimes.rb
を開いて、行51
に移動する必要があります。 autodetect
が探しているリソースを確認してください。これは欠落しているようです。
ロードされなかった依存関係がある可能性があります。最善の戦略は、rbenv
またはrvm
を使用して新しいRuby gem環境を作成し、再度バンドルすることです。修正する必要があります。
どのディレクトリ内でもサーバーを起動することはできません。ルートディレクトリに移動して入力するだけです
Rails server
または
Rails s