Rubygems, Bundler and RVM confusion

Anand picture Anand · Jan 5, 2011 · Viewed 19.1k times · Source

I read "Relationships between Rubygems, Bundler, and RVM" before asking it again.

Well, there are many questions like this, but people who answered say they work with Rubygems, RVM and Bundler, and they have not explained how each of these work in isolation.

I am really confused with how the three work in isolation when we are installing gems. Please do not tell me how you work, which will help me, but I won't learn what is happening when we play with them.

My confusion can be broken down into these questions. Where is a gem installed when:

  1. I just have Rubygems (without RVM or Bundler)?
  2. Rubygems and RVM are installed?
  3. Rubygems, RVM and Bundler are installed?

Please help me understand this stuff with either resources on the web or by your detailed answers.

Answer

idlefingers picture idlefingers · Jan 5, 2011
  1. To find out where gems are being installed to, run echo $GEM_HOME in a terminal.
  2. When using RVM, gems are installed into your RVM install as it changes $GEM_HOME. Running echo $GEM_HOME now would show a path into your RVM install.
  3. When Bundler is added to the mix, gems will either be installed in $GEM_HOME, or, if you specify a path when running bundle install will be installed to that path. To find out where a gem is through Bundler you can use bundle show gemname to get its full path.