Search code examples
rubyrvmgemset

What's the difference between ruby-1.9.3-p194 and ruby-1.9.3-p194@global gemsets?


I am currently running the following on OSX 10.6.8 and am trying to understand gemsets and gems.

Ruby 1.9.3-p194

Rails 3.2.8

RVM 1.15.6

When I look in .rvm/gems/ I see several gemset directories. Inside each one there is a gems directory. Now, whats the relationship between the non-'@' gemset and the @global gemset?


Solution

  • From the documentation:

    Interpreter global gemsets

    RVM provides (>= 0.1.8) a @global gemset per ruby interpreter.

    Gems you install to the @global gemset for a given ruby are available to all other gemsets you create in association with that ruby.

    This is a good way to allow all of your projects to share the same installed gem for a specific ruby interpreter installation.

    To expand on this, the gemset without the @global is the default gemset for that Ruby version. It is essentially a gemset with no name. The @global gemset, however, is special for the reasons outlined in the docs above.