24

我刚刚使用 rbenv 安装了 Ruby 2.0.0 并将其设置为我系统的全局 ruby​​ 版本。由于 2.0 与 1.9.3 兼容,我尝试用它启动一个 Rails 项目,但出现以下错误。我是rbenv rehash在安装 2.0 后做的

The `rails' command exists in these Ruby versions:
  1.9.3-p327

这是否意味着如果我希望将它与 2.0 一起使用,我必须重新安装我在系统上安装的 1.9.3 的每个 gem?

4

3 回答 3

49

如此处所示:

您需要为您使用的每个版本的 Ruby 重新安装 bundler。请参阅安装它的 Ruby 版本:

rbenv whence bundle

查看您当前的版本:

rbenv version

为该版本安装捆绑器(如果缺少):

gem install bundler
于 2013-03-10T20:51:07.663 回答
17

是的。Rbenv(和 RVM)对于每个已安装的 Ruby 版本都有单独的“gem home”目录。可能有一些方法可以对某些目录进行符号链接以使它们共享,但这可能会导致问题,特别是对于包含本机 C 扩展的 gem,它们可能会或可能不会在多个版本中干净地编译和运行。

如果你有一个 Gemfile,最简单的方法是bundle install再次为 Ruby 2.0 提供许多 gem 的副本以及任何本机 gem 的 Ruby-2.0 编译版本。

于 2013-03-10T20:48:10.303 回答
0

另一个解决方案是将之前版本的 gem 复制(或重新安装)到新安装的版本。这个问题详细回答了如何做到这一点,它有两个脚本——一个从本地缓存安装,一个从互联网重新安装(我的)。

于 2016-07-07T16:16:46.800 回答