RVM: Ruby Version Manager - RVM Ruby Version Manager (original) (raw)

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.

w00t!

Cut Rubies with ease!


Community Maintained Project

RVM is maintained and supported by the community via issue trackers and pull requests:

Production

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 lets 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!

Development

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.

Testing

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.

Gem Management

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.

Support

RVM is continuously evolving, thanks to community pull requests to the project.