環境:
Ubuntu 12.04 LTS (32bit)
ruby 1.9.3p448
rails 4.0.2
とある Rails アプリケーションを試そうとして
$ git clone https://github.com/hoge/rails_app_sample $ cd rails_app_sample $ bundle install --path vendor/bundle $ bundle exec rake db:migrate RAILS_ENV=development $ bundle exec rackup config.ru
というかんじで、サーバを起動したところ
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
というエラーが発生して起動に失敗した。
ググるとtherubyracer
という gem を追加すればよいらしい。
therubyracer とは JavaScript エンジンである v8 を Ruby から使えるようにする gem とのこと。
Gemfile ファイルにtherubyracer
を追加。
gem 'therubyracer'
bundle install
$ bundle install --path vendor/bundle ... Installing therubyracer (0.12.0) ...
起動
$ bundle exec rackup config.ru [2014-01-16 03:31:57] INFO WEBrick 1.3.1 [2014-01-16 03:31:57] INFO ruby 1.9.3 (2013-06-27) [i686-linux] [2014-01-16 03:31:57] INFO WEBrick::HTTPServer#start: pid=6108 port=9292
今度はエラーは出ず起動した。
しかし、このやり方だと bundle install する度に therubyracer が依存するlibv8
のインストール部分で時間がかかってしまうので Ubuntuに libv8-dev
をインストールすることにした。
$ sudo apt-get install libv8-dev ... The following NEW packages will be installed: libv8-3.7.12.22 libv8-dev ...