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!