Thursday, March 17, 2011

Ruby Version Manager with Gemset - ree installation

Recently I had given a session on Ruby version manager(RVM) with gemset, explained some of the important and useful bonus points which makes our life easier.

The reason behind this session being the need for our team to work on multiple projects and manage them efficiently, which run on different version of Rails. We are evaluating different version of ruby, like Ruby Enterprise edition, Ruby 1.9.2, Ruby 1.8.7.

I have posted my presentation on slideshare. You can download from there.

Now, I would like to discuss a problem which my colleagues has faced while installing Ruby enterprise edition under RVM.

A. While they using a command,
rvm install ree
They have got following error,

ERROR: Error running './installer -a /home/usera/.rvm/rubies/ree-1.8.7-2011.03 --dont-install-useful-gems ', please read /home/usera/.rvm/log/ree-1.8.7-2011.03/install.log
ERROR: There has been an error while trying to run the ree installer. Halting the installation.

So I have investigated about this error and I found that, some of the dependecy are met for ree installation.
This dependency I found using, installing ree manually under rvm,
Go to ree source folder, where ree source code is located
cd ~/.rvm/src/ree-1.8.7-2010.02

Then copy the command from above error, which is
./installer -a /home/usera/.rvm/rubies/ree-1.8.7-2011.03  --dont-install-useful-gems

After running above command, it will shows why ree installation failed.
On my colleague's machine, it is shows package libreadline5-dev is not installed

sudo apt-get install libreadline5-dev
Then install the dependeny that ree asked, and then install ree again
rvm install ree
B. Also one of my colleague faced following issue, while starting server using ruby script/server

/home/usera/.rvm/gems/ree-1.8.7-2011.03@livia_portal/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:55: uninitialized constant ActiveSupport:ependencies::Mutex (NameError)
from /home/usera/.rvm/gems/ree-1.8.7-2011.03@livia_portal/gems/activesupport-2.3.5/lib/active_support.rb:56:in `require'
from /home/usera/.rvm/gems/ree-1.8.7-2011.03@livia_portal/gems/activesupport-2.3.5/lib/active_support.rb:56
from /home/usera/.rvm/gems/ree-1.8.7-2011.03@livia_portal/gems/rails-2.3.5/lib/commands/server.rb:1:in `require'
from /home/usera/.rvm/gems/ree-1.8.7-2011.03@livia_portal/gems/rails-2.3.5/lib/commands/server.rb:1
from script/server:3:in `require'
from script/server:3

After investing I found that, latest version of gem is conflicting with old versions of rails (Rails-2.3.5 and gem 1.6.2).

So we have added following line into config/boot.rb
require 'thread'
Which resolved the above issue.