rbenv
What it is
rbenv is free, open-source software for selecting Ruby versions on Unix-like systems, with Linux and macOS listed as supported platforms. It can choose a Ruby version globally, for a project, or only for the current shell session. When a project contains a .ruby-version file, rbenv reads that setting and changes versions as you move between project directories. Command shims route Ruby executable calls to the selected version, while plugins can extend or replace much of the default behavior. Installing Ruby versions is handled by the separate ruby-build plugin, which downloads, compiles, and installs releases. ruby-build includes definitions for CRuby, JRuby, mruby, picoruby, and TruffleRuby. Its definitions cover only versions bundled with the plugin, so a newly released Ruby may require an upgrade first. Installation documentation covers Homebrew, Git, and Linux packages. The project is MIT licensed and supports CI/CD workflows.
For and against
For
- Free and open source
- Automatic project switching from .ruby-version
- Global, project, and shell selections
- Plugin extension mechanism
- Supports CI/CD workflows
Against
- Ruby installation requires separate ruby-build plugin
- New Ruby releases may require ruby-build upgrade
- Supports Linux and macOS only
The verdict
rbenv provides focused Ruby version selection with automatic project switching, shell controls, and plugin support. Its separate installation plugin and bundled version definitions are important considerations when managing newly released Rubies.
Who it suits
rbenv suits Ruby developers using Linux or macOS who need project-specific version selection. It also fits development machines and CI/CD workflows that require pinned Ruby versions.
Plans and prices
Free
Ruby version switching · plugin mechanism
Read 8 Oct 2026 · github.com
On the record
- Command shims
- rbenv generates shims for Ruby executables to route commands to the selected Ruby version.rbenv.org · read 8 Oct 2026
- Installation options
- The project documents installation through Homebrew on macOS or Linux, Git, and packages for several Linux distributions.github.com · read 8 Oct 2026
- Intended users
- The installer documentation describes rbenv-installer as intended for casual use on a user's own development machine.github.com · read 8 Oct 2026
- Plugins
- rbenv supports plugins that can hook into or override almost any aspect of its default behavior.rbenv.org · read 8 Oct 2026
- Project selection
- rbenv reads a project's .ruby-version file and switches Ruby versions when you change project directories.github.com · read 8 Oct 2026
- Purpose
- rbenv manages Ruby versions on Unix-like systems so projects can use the Ruby version they require.rbenv.org · read 8 Oct 2026
- Ruby implementations
- ruby-build includes definitions for CRuby, JRuby, mruby, picoruby, and TruffleRuby.rbenv.org · read 8 Oct 2026
- Ruby installation
- The rbenv install command is provided by the separate ruby-build plugin, which downloads, compiles, and installs Ruby versions.rbenv.org · read 8 Oct 2026
- Security and compliance
- The repository identifies the project license as MIT.github.com · read 8 Oct 2026
- Shell and global selection
- rbenv can set Ruby versions globally, per project, or for the current shell session.rbenv.org · read 8 Oct 2026
- Support
- The project directs users to its GitHub issue tracker for bugs and ruby-build Discussions for build troubleshooting.github.com · read 8 Oct 2026
- Version list limit
- ruby-build only knows versions bundled with the project, so installing a newly released Ruby version may require upgrading ruby-build first.rbenv.org · read 8 Oct 2026