All Versions
Latest Version
Avg Release Cycle
222 days
Latest Release
1884 days ago

Changelog History

  • v1.1.2 Changes

    March 25, 2019

    ๐Ÿ›  Fix rehash mechanism for versions of bash that complain about clobbering /dev/null

    Enforce absolute RBENV_DIR to avoid having to unset CDPATH

    rbenv-version-file: ensure that the version file is a file

    rbenv init -: fix output to work without args and set -u

    ๐Ÿ‘ rbenv shell: better error message when shell integration wasn't enabled

    ๐Ÿ’Ž Enable freezing rbenv version via rbenv version-name > .ruby-version in the shell

    rbenv-which: avoid changing PATH unless necessary

    rbenv-prefix: do not silence rbenv-which errors for system version

  • v1.1.1 Changes

    June 15, 2017
    • ๐Ÿ›  Fix setting environment variable in fish shell
    • Rename OLD_RBENV_VERSION to RBENV_* convention
  • v1.1.0 Changes

    November 25, 2016

    Backwards incompatible:

    • โœ‚ Remove deprecated ruby-local-exec executable
    • โœ‚ Remove support for .rbenv-version legacy version file
    • โœ‚ Remove support for default, global legacy global version files

    ๐Ÿ”‹ Features:

    • โž• Add support for rbenv shell - style of invocation that restores previous version


    • Adopt Contributor Covenant 1.4
    • Replace . with source for fish shell
    • Unset CDPATH if it's set by the user
    • ๐Ÿ›  Fix rbenv <cmd> --help for sh-* commands
    • Expand literal tilde in PATH
  • v1.0.0 Changes

    December 24, 2015

    ๐Ÿ”Œ rbenv is a robust tool that follows the UNIX methodology to implement per-project selection of Ruby versions and related runtime environment. The rbenv community maintains an ecosystem of plugins, and rbenv has inspired many other forks for managing environments of different programming languages and other software tools.

    rbenv works by:

    1. Having its shims/ directory prepended to PATH environment variable; ๐Ÿ’Ž 2. Reading a .ruby-version file in the project's directory that specifies the Ruby version to be activated.

    โฌ†๏ธ How to install/upgrade

    โฌ†๏ธ The rbenv-installer script automates installation or upgrading rbenv on your system with either Homebrew (if available) or by using git to install to ~/.rbenv directory.

    ๐Ÿ‘€ For manual installation instructions and more details, see Installation chapter of rbenv README.

    ๐Ÿ”„ Changes since v0.4.0

    ๐Ÿฑ Speed ๐ŸŽ

    • Speed up rbenv with dynamically loaded realpath C extension
    • ๐Ÿ’Ž Speed up rbenv rehash when there are many Ruby versions with similar sets of executables
    • ๐Ÿ‘Œ Improve performance of rbenv-which for "system" version
    • Avoid rbenv-exec calling out to rbenv-version-name twice

    To compile the optional C extension that speeds up rbenv across the board:

    # substitute with location where you installed rbenv source:$ cd ~/.rbenv $ src/configure && make -C src

    ๐Ÿ†• New features ๐ŸŽ

    • ๐Ÿ†• New plugin hooks version-name and version-origin enable plugin authors to hook into version selection logic.
    • rbenv versions --skip-aliases --bare will only list versions that are not aliases (symlinks) for other versions.
    • ๐Ÿ’Ž rbenv version-file <dir> finds a .ruby-version file in the target directory or any of its parent directories.
    • ๐Ÿ‘Œ rbenv init now recognizes and supports fish shell syntax. ๐ŸŸ
    • rbenv --debug <command> is a shortcut for enabling RBENV_DEBUG.

    ๐Ÿฑ Shell integration ๐Ÿš

    • Fix rbenv() shell function in ksh and dash
    • Ubuntu fix : use source instead of .
    • Reliably detect user's current shell in rbenv init
    • ๐Ÿ‘Œ Improve detection of completion support for commands
    • ๐Ÿ›  Fix detecting completions support on OpenBSD
    • Check if completion script is readable
    • โš  Suppress shell warnings when hashing is disabled by set +h
    • rbenv() shell function preserves multiline output of sh-* commands

    ๐Ÿฑ General enhancements โœจ

    • ๐Ÿ’Ž rbenv local now respects .ruby-version file in parent directories as well
    • โš  rbenv versions now emits a warning when no Ruby versions were found
    • ๐Ÿ‘ Consistently support rbenv <command> --help as alternative to rbenv help <command>
    • ๐Ÿ‘Œ Improve parsing of git revision in rbenv --version when rbenv was installed from git
    • Export PS4 when RBENV_DEBUG is set for more informative debug output

    ๐Ÿ› Bug fixes ๐Ÿž

    • ๐Ÿ›  Fix incorrect formatting of rbenv-help output under MAWK (Ubuntu)
    • Prefer gawk over awk if both are available
    • ๐Ÿ›  Fix resolving symlinks in rbenv-hooks
    • ๐Ÿ›  Fix iterating through paths that have spaces in them
    • ๐Ÿ›  Fix rbenv rehash when paths have spaces in them
    • More useful error message when rehash fails on a non-writable directory
    • ๐Ÿ’Ž Make rbenv-exec fail for invalid Ruby version
    • Bail out early if readlink is not available
    • Properly resolve symlinks when listing hook scripts
    • ๐Ÿ‘ Better error message for rbenv prefix system
    • ๐Ÿ›  Fix reading .ruby-version on platforms that don't support process substitution
    • โœ‚ Remove carriage return characters in .ruby-version files
    • ๐Ÿ›  Fixes rbenv on OpenBSD and other systems that don't support head -c
    • Guard against exported CDPATH
    • Ensure that IFS is reset to its original value within hook scripts
  • v0.4.0 Changes

    October 07, 2013

    ๐Ÿ†• New features

    • ๐Ÿ’Ž rbenv now prefers .ruby-version files to .rbenv-version files
      for specifying local application-specific versions. The
      ๐Ÿ’Ž .ruby-version file has the same format as .rbenv-version but is
      ๐Ÿ’Ž compatible with other Ruby version
    • ๐Ÿšš Deprecated ruby-local-exec and moved its functionality into the
      ๐Ÿ‘€ standard ruby shim. See the ruby-local-exec wiki
      ๐Ÿ’Ž page
      โฌ†๏ธ upgrade instructions.
    • Modified shims to include the full path to rbenv so that they can be
      invoked without having rbenv's bin directory in the $PATH.
    • ๐Ÿ“š Reworked rbenv help so that usage and documentation is stored as a
      ๐Ÿ”Œ comment in each subcommand, enabling plugin commands to hook into
      the help system.
    • โž• Added support for full completion of the command line, not just the
      first argument.
    • โž• Added rbenv --version for printing the current version of rbenv.
    • โž• Added /usr/lib/rbenv/hooks to the plugin hook search path.

    ๐Ÿ›  Other changes and bug fixes

    • Sped up rbenv init by avoiding rbenv reinitialization and by
      using a simpler indexing approach.
    • โšก๏ธ Updated installation instructions for Zsh and Ubuntu users.
    • ๐Ÿ›  Fixed rbenv which and rbenv prefix with system Ruby versions.
    • ๐Ÿ”„ Changed rbenv exec to avoid prepending the system Ruby location to
      ๐Ÿ’Ž $PATH to fix issues running system Ruby commands that invoke other
    • ๐Ÿ”„ Changed rbenv rehash to ensure it exits with a 0 status code under
      ๐Ÿšš normal operation, and to ensure outdated shims are removed first
      when rehashing.
    • Modified rbenv rehash to run hash -r afterwards, when shell
      integration is enabled, to ensure the shell's command cache is
    • โœ‚ Removed use of the += operator to support older versions of Bash.
    • Adjusted non-bare rbenv versions output to include system, if
    • ๐Ÿ‘Œ Improved documentation for installing and uninstalling Ruby
      ๐Ÿ”– versions.
    • ๐Ÿ›  Fixed rbenv versions not to display a warning if the currently
      specified version doesn't exist.
    • ๐Ÿ›  Fixed an instance of local variable leakage in the rbenv shell
      function wrapper.
    • ๐Ÿ”„ Changed rbenv shell to ensure it exits with a non-zero status on
    • ๐Ÿ›  Fixed rbenv which to account for path entries with spaces.
    • ๐Ÿ”„ Changed rbenv init to accept option arguments in any order.
  • v0.3.0 Changes

    October 07, 2013
    • โž• Added an rbenv root command which prints the value of
      0๏ธโƒฃ $RBENV_ROOT, or the default root directory if it's unset.
    • Clarified Zsh installation instructions in the Readme.
    • โœ‚ Removed some redundant code in rbenv rehash.
    • ๐Ÿ›  Fixed an issue with calling readlink for paths with spaces.
    • ๐Ÿ”„ Changed Zsh initialization code to install completion hooks only for
      interactive shells.
    • โž• Added preliminary support for ksh.
    • ๐Ÿšš rbenv rehash creates or removes shims only when necessary instead
      of removing and re-creating all shims on each invocation.
    • ๐Ÿ›  Fixed that RBENV_DIR, when specified, would be incorrectly
      expanded to its parent directory.
    • โœ‚ Removed the deprecated set-default and set-local commands.
    • โž• Added a --no-rehash option to rbenv init for skipping the
      automatic rehash when opening a new shell.
  • v0.2.1 Changes

    October 07, 2013
    • ๐Ÿ”„ Changed the rbenv command to ensure that RBENV_DIR is always an
      ๐Ÿ’Ž absolute path. This fixes an issue where Ruby scripts using the
      ๐Ÿ’Ž ruby-local-exec wrapper would go into an infinite loop when
      ๐Ÿ’ป invoked with a relative path from the command line.
  • v0.2.0 Changes

    October 07, 2013
    • 0๏ธโƒฃ Renamed rbenv set-default to rbenv global and rbenv set-local
      ๐Ÿ—„ to rbenv local. The set- commands are deprecated and will be
      โœ‚ removed in the next major release.
    • rbenv now uses greadlink on Solaris.
    • โž• Added a ruby-local-exec command which can be used in shebangs in
      ๐Ÿ’Ž place of #!/usr/bin/env ruby to properly set the project-specific
      ๐Ÿ’Ž Ruby version regardless of current working directory.
    • ๐Ÿ›  Fixed an issue with rbenv rehash when no binaries are present.
    • โž• Added support for rbenv-sh-* commands, which run inside the
      current shell instead of in a child process.
    • โž• Added an rbenv shell command for conveniently setting the
      $RBENV_VERSION environment variable.
    • โž• Added support for storing rbenv versions and shims in directories
      other than ~/.rbenv with the $RBENV_ROOT environment variable.
    • โž• Added support for debugging rbenv via set -x when the
      $RBENV_DEBUG environment variable is set.
    • ๐Ÿ”จ Refactored the autocompletion system so that completions are now
      built-in to each command and shared between bash and Zsh.
    • โž• Added support for plugin bundles in ~/.rbenv/plugins as documented
      in #102.
    • โž• Added /usr/local/etc/rbenv.d to the list of directories searched
      for rbenv hooks.
    • โž• Added support for an $RBENV_DIR environment variable which
      0๏ธโƒฃ defaults to the current working directory for specifying where rbenv
      searches for local version files.
  • v0.1.2 Changes

    October 07, 2013
    • ๐Ÿ›  Fixed rbenv to be more resilient against nonexistent entries in
    • Made the rbenv rehash command operate atomically.
    • Modified the rbenv init script to automatically run rbenv rehash so that shims are recreated whenever a new shell is opened.
    • โž• Added initial support for Zsh autocompletion.
    • โœ‚ Removed the dependency on egrep for reading version files.
  • v0.1.1 Changes

    October 07, 2013
    • ๐Ÿ›  Fixed a syntax error in the rbenv help command.
    • โœ‚ Removed -e from the shebang in favor of set -e at the top of
      each file for compatibility with operating systems that do not
      ๐Ÿ‘Œ support more than one argument in the shebang.