【问题标题】:Can't change rbenv global ruby version无法更改 rbenv 全局 ruby​​ 版本
【发布时间】:2012-12-02 18:36:09
【问题描述】:

我最近从 RVM 切换到 rbenv,但我似乎无法在 ruby​​ 版本之间切换,即使“rbenv 版本”告诉我我有想要切换到的版本。

这是我正在做的事情:

ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

我想切换到 1.9.2-p290,所以请确保我的版本中有它:

ruby versions
1.8.7-p370
1.9.2-p290
1.9.3-p125
1.9.3-rc1

好的,现在我看到我拥有它了,让我们尝试更改全局 rbenv:

rbenv global 1.9.2-p290
ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

似乎 1.8.7 仍然是活跃的全球红宝石。

所以,让我们尝试在我的项目中使其本地化。 rbenv 本地 1.9.2-p290

这会在我的 rails 项目中创建一个 .rbenv-versions 文件。太好了,让我们尝试运行 bundle:

Gem::InstallError: factory_girl requires Ruby version >= 1.9.2.
An error occurred while installing factory_girl (4.1.0), and Bundler cannot continue.
Make sure that `gem install factory_girl -v '4.1.0'` succeeds before bundling. 

我不知道下一步该做什么......

【问题讨论】:

  • 好的,所以我认为我找到了问题所在。我发现了这个:stackoverflow.com/questions/10940736/… 但这不是问题,因为我只有一个 0.3.0 版本。所以我还是把它删除了,然后在我的桌面上放了一个本地副本。 Ran rbevn global [change] 显然它没有用。我把同一个文件放回去,然后运行 ​​change global ruby​​ 命令,它解决了我遇到的任何问题。
  • 像这样的问题没有得到解答真是太奇怪了。我和我认识的大多数人真的很难让一个不同的 Ruby 版本在 OSX 上工作。而且不知何故,即使在 Github 上也似乎不可能找到正确的答案。
  • 因为这仍然出现在 2021 年,所以对我有用的是在终端中添加这些命令: export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"

标签: ruby-on-rails rbenv


【解决方案1】:

我今天在朋友的(OSX)电脑上解决了这个问题,问题可能是你同时安装了RVM和Rbenv,首先你必须确保RVM被移除;

在终端执行:

sudo rm -rf ~/.rvm

完成后,重新打开终端。然后试试ruby -v,你看到的版本很可能是系统版本ruby 1.8.7。然后再次尝试使用 Rbenv 选择正确的 Ruby 版本:

rbenv global 2.0.0-p247

另外,请确保 Rbenv 在您的路径中:

echo $PATH
=> /Users/jankeesvw/.rbenv/bin:/Users/jankeesvw/.rbenv/shims:/Users/jankeesvw/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin

如果此 Rbenv 不在您的路径中,请按照 Rbenv github page 上的说明进行操作

【讨论】:

  • 正如我在推特上向您提出这个问题时所承诺的那样,您是我的英雄。最后,我的 Ruby 不再是 1.8.7 了。众多陷阱之一是修改 .zshrc 而不是 .bash_profile。 (下一个挑战是耙茉莉,但这不是这个问题的一部分。)
  • 如果 PATH 没有 .rbenv 则执行:
【解决方案2】:

如果$ echo $PATH

没有 .rbenv 然后执行:

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

然后重新启动 shell。

【讨论】:

  • 对于 ~/.zshr 替换 ~/.bash_profile 就像 thisc$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zschr $ echo ' eval "$(rbenv init -)"' >> ~/.zschr 为我工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 2018-01-03
  • 1970-01-01
  • 2023-03-11
  • 2018-04-16
  • 1970-01-01
相关资源
最近更新 更多