为每个ruby版本重新安装每个gem?

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

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

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

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

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

如下所示:

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

 rbenv whence bundle 

查看您当前的版本:

 rbenv version 

如果缺少,请为该版本安装bundler:

 gem install bundler 

另一个解决方案是将先前版本的gem(或重新安装)复制(或重新安装)到新安装的版本。 在这个问题中详细解答了如何做到这一点, 该问题有两个脚本 – 一个用于从本地缓存安装 ,另一个用于从Internet重新安装 (我的)。