I've been peacefully developing on Windows without adding any gems for a few weeks now and today I decided to do a bundle update, but I cannot get through this gem called therubyracer. I have the devkit installed and it is working according to the documentation's verification procedure.
My question is: is there a way to install this gem at all on windows?
And is this gem going to be required by rails 3.1 and this is why now that I do a bundle update it is being 'slipped' into the rails 3.0.8 as a gesture of early kick start for future 3.1 migration?
EDIT including Gemfile and Gemfile.lock
# Gemfile
# source 'http://rubygems.org'
source :rubygems
gem 'rails'
gem 'rake', '0.8.7'
gem 'youtube_it'
gem 'panda'
gem "nifty-generators"
# gem "mongoid", "2.0.0.rc.7"
gem "mongoid"
gem "mongoid-eager-loading"
# gem 'mongoid_search'
gem "bson_ext", ">1.1.5"
gem 'devise'
gem 'cancan'
gem 'hirb'
# gem 'heroku'
gem 'rest-client'
gem 'less' # needs the more plugin
# gem 'hash_extension'
gem 'aws-s3', :require => 'aws/s3' # s3.rb
gem 'jquery-rails', ">= 0.2.7" # rails g jquery:install
# gem 'mongrel', ">= 1.2.0.pre2"
gem 'delayed_job'
gem 'delayed_job_mongoid'
gem 'kaminari'
# Gemfile.lock
GEM
remote: http://rubygems.org/
specs:
abstract (1.0.0)
actionmailer (3.0.8)
actionpack (= 3.0.8)
mail (~> 2.2.19)
actionpack (3.0.8)
activemodel (= 3.0.8)
activesupport (= 3.0.8)
builder (~> 2.1.2)
erubis (~> 2.6.6)
i18n (~> 0.5.0)
rack (~> 1.2.1)
rack-mount (~> 0.6.14)
rack-test (~> 0.5.7)
tzinfo (~> 0.3.23)
activemodel (3.0.8)
activesupport (= 3.0.8)
builder (~> 2.1.2)
i18n (~> 0.5.0)
activerecord (3.0.8)
activemodel (= 3.0.8)
activesupport (= 3.0.8)
arel (~> 2.0.10)
tzinfo (~> 0.3.23)
activeresource (3.0.8)
activemodel (= 3.0.8)
activesupport (= 3.0.8)
activesupport (3.0.8)
arel (2.0.10)
aws-s3 (0.6.2)
builder
mime-types
xml-simple
bcrypt-ruby (2.1.4-x86-mingw32)
bson (1.3.1)
bson_ext (1.3.1)
builder (2.1.2)
cancan (1.6.5)
daemons (1.1.3)
delayed_job (2.1.4)
activesupport (~> 3.0)
daemons
delayed_job_mongoid (1.0.2)
delayed_job (~> 2.1.1)
mongoid (~> 2.0.0.rc)
devise (1.3.4)
bcrypt-ruby (~> 2.1.2)
orm_adapter (~> 0.0.3)
warden (~> 1.0.3)
erubis (2.6.6)
abstract (>= 1.0.0)
hirb (0.4.5)
i18n (0.5.0)
jquery-rails (1.0.10)
railties (~> 3.0)
thor (~> 0.14)
json (1.5.2)
kaminari (0.12.4)
rails (>= 3.0.0)
less (1.2.21)
mutter (>= 0.4.2)
treetop (>= 1.4.2)
mail (2.2.19)
activesupport (>= 2.3.6)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.16)
mongo (1.3.1)
bson (>= 1.3.1)
mongoid (2.0.2)
activemodel (~> 3.0)
mongo (~> 1.3)
tzinfo (~> 0.3.22)
mongoid-eager-loading (0.3.1)
mutter (0.5.3)
nifty-generators (0.4.6)
oauth (0.4.4)
orm_adapter (0.0.5)
panda (1.4.2)
json
rest-client
ruby-hmac (>= 0.3.2)
polyglot (0.3.1)
rack (1.2.3)
rack-mount (0.6.14)
rack (>= 1.0.0)
rack-test (0.5.7)
rack (>= 1.0)
rails (3.0.8)
actionmailer (= 3.0.8)
actionpack (= 3.0.8)
activerecord (= 3.0.8)
activeresource (= 3.0.8)
activesupport (= 3.0.8)
bundler (~> 1.0)
railties (= 3.0.8)
railties (3.0.8)
actionpack (= 3.0.8)
activesupport (= 3.0.8)
rake (>= 0.8.7)
thor (~> 0.14.4)
rake (0.8.7)
rest-client (1.6.1)
mime-types (>= 1.16)
ruby-hmac (0.4.0)
thor (0.14.6)
treetop (1.4.9)
polyglot (>= 0.3.1)
tzinfo (0.3.28)
warden (1.0.4)
rack (>= 1.0)
xml-simple (1.0.16)
youtube_it (1.4.2)
builder
oauth (>= 0.4.4)
PLATFORMS
x86-mingw32
DEPENDENCIES
aws-s3
bson_ext (> 1.1.5)
cancan
delayed_job
delayed_job_mongoid
devise
hirb
jquery-rails (>= 0.2.7)
kaminari
less
mongoid
mongoid-eager-loading
nifty-generators
panda
rails
rake (= 0.8.7)
rest-client
youtube_it
This is essentially what Nik has done, I believe:
In your Gemfile isolate the TheRubyRacer gem to the production environment like this:
In your development environment, instead of a plain
bundle install
door, as Nik suggests,
bundle install development
. When you deploy to Heroku it will install the gem because it is the production environment.Rails gurus: please suggest edits to make this less sucky.
The reason for all of these problems is the therubyracer-0.11.0beta1-x86-mingw32.gem and the v8.dll.
I have complied the necessary dlls and gem files and upload them to github.
download the package and follow the instructions.
https://github.com/eakmotion/therubyracer_for_windows
No, there is no way that I know of to currently install this gem on windows. The problem is that there is currently no pre-compiled version of the libv8 gem for Windows, and the source version is only compatible with *nix. It does not necessarily have to be that way, it just requires somebody taking the time to make the compile work for Windows. https://github.com/fractaloop/libv8
That said, Windows should come with a JScript, the Microsoft JavaScript runtime, which rails (via execjs) will automatically detect and use, so you should be able to just remove your dependency on therubyracer.
As the maintainer of that gem, this would of course make me sad, but it should get you on your way.
To answer part of your question about Rails 3.1, here's the deal...
Rails 3.1 currently uses a gem that requires a javascript runtime to be installed on the machine. On Mac you typically don't have to worry about this since it already has one, but Linux (and I think Windows too) you need to install one. So, therubyracer, or sometimes node or nodejs, are sometimes installed since they provide that.
However, one of the main Rails guys said they plan to fix that dependency before the final Rails 3.1 release, so hopefully that'll happen and the dependency will be gone.
There is build for windows. It can be manually downloaded and installed by
gem install therubyracer-0.11.0beta1-x86-mingw32.gem
.