Ruby Gem Require LoadError (8-STABLE, Ruby 1.9.1)
Aaron Gifford
astounding at gmail.com
Fri Jan 29 02:25:07 UTC 2010
I wrote:
> One more interesting thing:
>
> % ruby19 -e 'p Gem.default_dir'
> "/usr/local/lib/ruby19/gems/1.9"
>
> That is NOT right. It should be "/usr/local/lib/ruby/gems/1.9" instead.
>
> Where does Gem.default_dir get set, does anyone know?
>
> Aaron out.
It looks like gem_prelude.rb sets up the gems include path.
The relevant code section is:
def self.default_dir
File.join File.dirname(ConfigMap[:sitedir]), 'Gems',
ConfigMap[:ruby_version]
elsif RUBY_VERSION > '1.9' then
File.join(ConfigMap[:libdir], ConfigMap[:ruby_install_name], 'gems',
ConfigMap[:ruby_version])
else
File.join(ConfigMap[:libdir], ruby_engine, 'gems',
ConfigMap[:ruby_version])
end
end
So the Gem.default_dir is being set to:
File.join(ConfigMap[:libdir], ConfigMap[:ruby_install_name], 'gems',
ConfigMap[:ruby_version])
(that's the middle "RUBY_VERSION > '1.9'" code chunk)
So ConfigMap[:ruby_install_name] is "ruby19" in this case, and THAT's
what is screwing this up.
IDEAS:
Either the FreeBSD Ruby 1.9 port needs to install things in
"/usr/local/lib/ruby19" instead of "/usr/local/lib/ruby/" so the code
will work as-is, or else something's gotta change with
ConfigMap[:ruby_install_name], or else gem_prelude.rb code has to be
changed...
So... anyone with expertise, where does one go from here?
Aaron out.
More information about the freebsd-ruby
mailing list