我根据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
对我来说,使用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版本都没有问题。
注意在做出更改后重新启动终端会话。
公认的答案建议增加以下内容:
export PATH="$HOME/.rbenv/bin:$PATH"
这将不会在Mac OSX上工作,OP引用。事实上,如果你通过brew install rbenv安装rbenv,这是Mac OSX中唯一的安装方法,因为curl - ssl https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash将在OSX中失败,那么rbenv可执行文件将安装在:
$ which rbenv
/usr/local/bin/rbenv
然而,即使在OSX中,rbenv根目录仍然在$HOME目录中:
~ viggy$ rbenv root
/Users/viggy/.rbenv
这是什么意思?这意味着当你安装ruby时,它们将安装在给定的主目录下。rbenv:
$ rbenv install 2.6.0
$ ls ~/.rbenv/versions
2.6.0
现在,brew安装完成了一些在Linux中必须手动执行的工作。例如,在Linux中,你必须手动安装ruby-build插件:
$ mkdir -p "$(rvbenv root)/plugins"
$ git clone https://github.com/rbenv/ruby-build.git "(rbenv root)"/plugins/ruby-build
这已经通过自制程序安装完成了。在homebrew安装中必须完成一个重要步骤,就像在Linux安装中一样。您必须将rbenv垫片添加到路径中。为了做到这一点,当你的shell启动时,你必须计算以下命令(这将反过来将rbenv shims添加到你的$PATH的开头):
$ vim ~/.bash_profile
eval "$(rbenv init -)"
$ source ~/.bash_profile
现在当你运行echo $PATH,你会看到rbenv shims:
$ echo $PATH
/Users/viggy/.rbenv/shims:
现在检查你的ruby版本,它会反映安装的rbenv ruby:
ruby -v
ruby 2.6.0p0