Monday, February 04, 2008

Understanding Rubygem's Load Errors

While rubygems is a great way of installing your packages without having yourself to dirty your hands, but if you installed your gems this way, it however does not mean that loading those newly installed gems is automatically.

It took me a while before I understood why my newly installed gems cannot be loaded through the 'require' statement, and giving me irksome messages like the 'no such file to load' error:
LoadError: no such file to load -- sequel
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from (irb):1
That unhelpful message actually implies that you're missing rubygems as a requirement. So make sure you load rubygems via 'require' before you load any other gems installed by it in your source file:
require 'rubygems'
# put all other requirements after this
The other way of permanently including rubygems is to export the -rubygems flag into your RUBYOPT environment variable. Different shells may vary, but here's how you'll do it in bash:
% export RUBYOPT=-rubygems
Do make sure you check if there are any existing flags in RUBYOPT first before overwriting it though!

1 comments:

Ted S. said...

> That unhelpful message actually implies that you're missing rubygems as a requirement.

That could be the case, but I don't think that's the only reason this error might happen.

Post a comment