mpapis, rys, ddd on IRC in
#rvm on irc.freenode.net
RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems.
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stableFor all in one installation append
RVM is maintained by the community through pull requests sent to the project repository which is located on github at https://github.com/wayneeseguin/rvm
RVM lets you deploy each project with its own completely self-contained and dedicated environment, from the specific version of ruby, all the way down to the precise set of required gems to run your application. Having a precise set of gems also avoids the issue of version conflicts between projects, which can cause difficult-to-trace errors and hours of hair loss. With RVM, NO OTHER GEMS than those required are installed. This makes working with multiple complex applications, where each has a long list of gem dependencies, much more efficient. RVM let you easily test gem upgrades, by switching to a new clean set of gems to test with, while leaving your original set intact. It is flexible enough to even let you maintain a set of gems per environment, or per development branch, or even per individual developer's taste!
RVM reduces the complexity of the many facets of ruby development through its command-line API. With RVM, you can have **identical** self-contained environments in your Development, CI, Q/A, Staging, and Production environments. No more hidden gotchas: if it works for one of them, it will work in all of them. With named gemsets, you can reliably and immediately push changes from one environment to another. And, RVM is for Ruby applications, *not just for Rails*! Any Ruby based application will benefit from your use of RVM.
RVM enables you to easily test both upgrade and escape paths very easily and consistently. With RVM, you can run a test suite, rake tasks, benchmarks and gem commands against multiple ruby versions at the same time. This means that you can easily ensure your applications work in Ruby 1.8.X, REE, MRI 1.9.1, jruby, etc... and quickly expose any areas in which they do not.
RVM has an extremely flexible gem management system called Named Gem Sets. RVM's 'gemsets' make managing gems across multiple versions of Ruby a non-issue. RVM lets you add a small text file to your application's repository, instead of checking in tons of gems which would needlessly inflate your repository size. Additionally, RVM's gemset management uses a common cache directory, so only one downloaded version of each gem resides on disk rather than several copies.
RVM helps ensure that all aspects of Ruby are completely contained within user space, strongly encouraging safer, non-root use. Use of RVM rubies thus provides a higher level of system security, and therefore reduces risk and cuts overall system downtime. Additionally, since all processes run at the user level, a compromised ruby process cannot compromise the entire system.
RVM is continuously evolving, thanks to community pull requests to the project.