我根据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

当前回答

我尝试了所有的解决方案,但没有一个对我有效。甚至我也在.zshrc文件中包含了路径。

就我而言,我使用的是MacBook Pro M2和macOS Ventura 13.2。我使用的是React Native 0.71.2,需要Ruby 2.7.6版本。

我简单地把下面的代码放在。zprofile中,而不是。zshrc,它工作了:

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

其他回答

这发生在我重新安装rbenv之后。显然,我的主目录中有一个.ruby版本的文件,指定了一个不再存在的版本。一旦我删除了文件,一切都正常了。

当我出现这些症状时,问题原来是我试图切换到的新Ruby版本的安装中途失败了,而我没有注意到。解决方案是删除并重新安装它。

(这意味着即使ruby 1.9.3出现在rbenv的可用版本列表中,但它在rbenv假设的路径上没有可执行文件。由于rbenv试图通过在路径前添加一个位置来改变你的ruby版本,如果它所添加的位置中实际上没有任何内容,那么你的操作系统将很乐意继续搜索默认路径并找到你的系统版本,在我的例子中,就像问题的1.8.7一样。)

你可以试试用chruby?chruby不依赖于shims,相反,它只修改PATH, GEM_HOME, GEM_PATH。

显然,当我使用罗塞塔终端时,它对我有效

您可以尝试使用Rosetta终端做同样的事情

通过进入

Finder > Utilities > Terminal >获取信息

有很多误导性的答案是有效的。我认为值得一提的是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>