RubyGems changes to accomodate multiple ruby implementations

Bohuslav Kabrda bkabrda at redhat.com
Tue Nov 20 09:19:07 UTC 2012


Hi all,
as I'm working towards getting JRuby packaged, I started playing around with RubyGems and the default operating_system.rb, that modifies the behaviour on Fedora.
Since the ultimate plan is to have shared RubyGems for all implementations, every one of these implementations will need its own extension directories. So far, we had just MRI and its extensions went under /usr/lib[64]/gems/exts. I'd like to propose that we change this to /usr/lib[64]/gems/ruby for MRI, /usr/share/gems/jruby for jruby (since java extensions aren't platform specific) and when rubinius comes, we can place its extensions under /usr/lib[64]/gems/rubinius.
The customized operating_system.rb (and the whole rubygems) are at [1]. I would appreciate any comments/thoughts on this.
There is a small regression hidden in this: The gems installed with "sudo gem install" currently place their extensions under /usr/local/lib64/gems/exts, which would also change to /usr/local/lib64/gems/ruby, causing these gems to need reinstallation if my changes are applied, but I don't think this should keep us from doing this transition.

Thoughts?
Thanks,
Slavek.

-- 
Regards,
Bohuslav "Slavek" Kabrda.

[1] https://github.com/bkabrda/jruby.spec/tree/master/rubygems


More information about the ruby-sig mailing list