Problems Updating RubyGems 1.0.1 on Ubuntu 0

Posted by Paul
on Thursday, February 28

So, I decided to start using gemsonrails to manage freezing gems in my applications. So I ran:

APPLICATION_ROOT$ sudo gem install gemsonrails
APPLICATION_ROOT$ gemsonrails
Installed gems_to_rails 0.7.2 to ./vendor/plugins/gemsonrails

Fine so far. Now to freeze Haml 1.8.2 into my application.

APPLICATION_ROOT$ rake gems:freeze GEM=Haml VERSION=1.8.2
rake aborted!
uninitialized constant Gem::Installer

Oh dear. After some googling I found that gemsonrails requires rubygems 1.9.5. I was currently running a version before that (gem -v) so I updated to rubygems 1.0.1.

$ sudo gem update --system
.
.
.
$ gem list
/usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)

After reading a post on ragged blog it seems gem now lives at /usr/bin/gem1.8 on my Ubuntu system instead of the previous /usr/bin/gem. Better fix it up.

$ which gem
/usr/bin/gem
$ sudo rm /usr/bin/gem
$ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
$ gem list

*** LOCAL GEMS ***


Where have my gems gone?!

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.0.1 (1.0.1)
  - RUBY VERSION: 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org

My gem installation directory is now /usr/lib/ruby/gems/1.8 when it used to be /var/lib/gems/1.8/gems. So I'll make a cup of tea and install my gems again then remove my old gem installation directory

Let it be known that this is a very good example of why you should freeze your gems into your applications. Now I have gemsonrails up and running this should be a more manageable task!