我根据github的说明安装了rbenv。我正在运行OSX,但我已经在Ubuntu 12.04虚拟机上尝试了这一点,并得到了相同的结果。下面是当我尝试更改ruby版本时,在我的终端中得到的结果:

rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125

rbenv global
1.9.3-p0

rbenv rehash

ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]

which ruby
/usr/bin/ruby

有人知道为什么rbenv没有像它认为的那样切换ruby版本吗?此外,本地目录中没有.rbenv文件,这将导致ruby版本默认为1.8.7

rbenv local
rbenv: no local version configured for this directory

当前回答

在我的mac上添加eval "$(rbenv init -)"到.bash_profile解决了这个问题。 rbenv当地 Ruby -v给出了集合

其他回答

奇怪的是,rbenv版本没有设置.rbenv文件。

使用:ls -ltra——>检查rbenv是否被写入。

Rbenv帮助shell

"通过在shell中设置'RBENV_VERSION'环境变量来设置特定于shell的Ruby版本。此版本将覆盖特定于本地应用程序的版本和全局版本。应该是一个与rbenv已知的Ruby版本匹配的字符串。特殊版本字符串'system'将使用默认的系统Ruby。运行rbenv versions'查看可用的Ruby版本列表。”

如果rbenv被正确安装,ruby -v将对应于

Rbenv shell 1.9.3-p125

对我来说,使用rbenv和zsh最简单的方法是将rbenv添加到.zshrc配置中的插件部分。在我的例子中,它看起来类似于:

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git bower rails ruby rbenv gulp npm node nvm sublime)

在rbenv的帮助下,安装、切换和使用ruby版本都没有问题。

注意在做出更改后重新启动终端会话。

run:

rbenv init

在我运行后,当我设置我的本地rbenv版本:

rbenv local 2.4.0

然后我的ruby -v和我的rbenv本地版本重合了。

注意:你可能还想退出你所在的目录,然后回到它,我注意到这对我来说是必要的,为了让事情正常工作。

确保.bash_profile的最后一行是:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"