rbenv v1.0.0 Release Notes
Release Date: 2015-12-24 // over 8 years ago-
๐ 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:
- 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 torbenv-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
andversion-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 ofsh-*
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 torbenv 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
overawk
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
- Having its