Following current best practices, what is the proper role for each of these?
Based on my limited understanding of Bundler and RVM, it seems that they--like Rubygems--have their own install locations for gems. Plus, for each one, there's the option of installing to system paths using sudo
or to your home directory. And then there's the ability to vendor gems with Bundler (where applicable, e.g. with Rails).
So it looks to me like there are at least seven places to install gems now:
- Rubygems system path
- Rubygems user path
- RVM system path
- RVM user path
- Bundler system path
- Bundler user path
- Vendor (per-app)
So, what's the best way to manage all this? Do we use all three (Rubygems, Bundler, RVM) and tell them all to install gems to the same place? Do we use sudo
all the time, some of the time, or never? And should we be using a different strategy on production and development machines?
On a related note, are Bundler and RVM wrappers around Rubygems, are they alternatives to it, or are they completely orthogonal to it?