我按照github的说明安装了rbenv.我正在运行OSX,但我已经在Ubuntu12.04虚拟机上try 过了,并得到了相同的结果.以下是我在try 更改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

推荐答案

判断路径是否包含$HOME/.rbenv/shims$HOME/.rbenv/bin

$ env | grep PATH

还要判断~/中是否有以下内容.如果使用bash或~/,则使用bash_配置文件.如果使用zsh,则为zshenv

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

注:

最后,确保你的$HOME文件夹中没有一个.ruby-version文件,如果你在$HOME文件夹中创建了$ rbenv local <ruby-version>,那么这个.ruby-version文件可能是你意外创建的.执行$ rbenv global <ruby-version>修改$HOME/.rbenv/version文件,$HOME文件夹中存在.ruby-version文件将覆盖$HOME/.rbenv/version设置的版本.

从文件中:

Select Ruby版本

RBENV_版本环境变量(如果指定).可以使用rbenv shell命令在当前shell会话中设置此环境变量.

第一个.通过搜索正在执行的脚本目录及其每个父目录,直到到达文件系统的根目录,可以找到ruby版本文件.

第一个.通过搜索当前工作目录及其每个父目录,直到找到文件系统的根目录,可以找到ruby版本的文件.您可以修改.使用rbenv local命令在当前工作目录中创建ruby版本文件.

全球~/.rbenv/version文件.可以使用rbenv global命令修改此文件.如果全局版本文件不存在,rbenv会假定您想要使用"系统"Ruby,即如果rbenv不在您的路径中,将运行的任何版本.

Ruby相关问答推荐

使用map DO使用嵌套数组重构对象数组

鲁比.METHOD_MISSING+SEND对于带有命名参数的混合参数失败

使用 Sorbet RBI 时需要 Elem

Ruby 3 从多个预定纤程中收集结果

Ruby 中的yield关键字有什么作用?

需要在Ruby中将数组拆分为指定大小的子数组

Ruby:如何计算相对于另一个路径的路径?

CSV.read 第 x 行的非法引用

Ruby 中数组和哈希的性能

GET 和 POST 请求的相同 Rails 4 路由

RSpec:每次指定对具有不同参数的方法的多次调用

Ruby 与计算机科学相关的 yield 特性

rspec 是否有比 target.should < 6 更具体的东西?

什么是匹配不在行尾的字符串的正则表达式?

如何获取当前 rake 任务的 PID?

如何使用 link_to Ruby on rails 添加确认消息

如何在 gemspec 中指定最低 Ruby 版本?

Ruby:是否可以在模块中定义类方法?

更好的 ruby​​ markdown 解释器?

什么是 Ruby 1.9 标准 CSV 库?