ExecJS and could not find a JavaScript runtime
Just add ExecJS and the Ruby Racer in your gem file and run bundle install
after.
gem 'execjs'
gem 'therubyracer'
Everything should be fine after.
Ubuntu Users
I'm on Ubuntu 11.04 and had similar issues. Installing Node.js fixed it.
As of Ubuntu 13.04 x64 you only need to run:
sudo apt-get install nodejs
This will solve the problem.
CentOS/RedHat Users
sudo yum install nodejs
In your Gem file, write
gem 'execjs'
gem 'therubyracer'
and then run
bundle install
Everything works fine for me :)
I had a similar problem: my Rails 3.1 app worked fine on Windows but got the same error as the OP when running on Linux. The fix that worked for me on both platforms was to add the following to my Gemfile
:
gem 'therubyracer', :platforms => :ruby
The trick is knowing that :platforms => :ruby
actually means only use this gem with "C Ruby (MRI) or Rubinius, but NOT Windows."
Other possible values for :platforms
are described in the bundler
man page.
FYI: Windows has a builtin JavaScript engine which execjs
can locate. On Linux there is not a builtin although there are several available that one can install. therubyracer
is one of them. Others are listed in the execjs
README.md.
Adding the following gem to my Gemfile solved the issue:
gem 'therubyracer'
Then bundle your new dependencies:
$ bundle install