我根据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文档向我们指出了rbenv-doctor诊断工具,该工具将快速验证系统上的所有这些潜在缺陷:

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

当一切顺利时,你会看到:

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash                                     <aws:hd-pmp-developer>
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20201005)
Counting installed Ruby versions: 1 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK

现在,如果我们打破了这些期望之一(例如删除rbenv-install),该工具将直接指向我们的问题,并提供了如何修复它的链接:

$ mv /usr/local/bin/rbenv-install rbenv-install-GONE
                                                                      
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash                                     
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK

===> Checking `rbenv install' support: not found <===
  Unless you plan to add Ruby versions manually, you should install ruby-build.
  Please refer to https://github.com/rbenv/ruby-build#installation

Counting installed Ruby versions: 1 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK

其他回答

这可能是个老问题了,但谷歌把我带到了这里,为了子孙后代着想,我想分享一下。

在以上推荐的许多解决方案之后,我的问题仍然存在。像OP一样,我安装了rbenv,然后安装了ruby版本,但我的笔记本电脑默认为system。我在跑步时忽略了一点:

[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
  2.0.0-p247

IOW,它仍然默认系统。一个快速

[~/.rbenv] $ rbenv local 2.0.0-p247

换成新版本了。

如果使用bash,请转到

~/.bash_profile

并添加以下行(如果还没有的话)

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

如果您正在使用Zsh,请转到

~/.zshrc

并在.zshrc文件的末尾添加同一行代码。

然后简单地重新启动你的终端,现在应该没问题了。

Linux / Ubuntu用户 步骤1:

$ rbenv versions
  system
  2.6.0
* 2.7.0 (set by /home/User/Documents/sample-app/.ruby-version) #Yours will be different
  2.7.2

步骤2:

$ nano /home/User/Documents/sample-app/.ruby-version

步骤3:

$ ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]

有很多误导性的答案是有效的。我认为值得一提的是rbenv README的步骤。

$ brew安装rbenv $ rbenv init并按照它给出的指示执行。这是我得到的:

~ $ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bash_profile:

eval "$(rbenv init -)"

我更新了~/.bash_profile…

关闭终端,重新打开 通过运行以下命令来验证它是否正常工作:

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

现在只需安装你想要的版本:rbenv install <version>

将以下内容添加到.bashrc对我来说是有效的-

导出路径= " $ HOME / .rbenv /垫片:美元路径”