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

时间:2013-03-10 20:40:00

标签: ruby rbenv

我刚刚使用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系统上安装的每个宝石?

3 个答案:

答案 0 :(得分:48)

here

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

rbenv whence bundle

查看您当前的版本:

rbenv version

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

gem install bundler

答案 1 :(得分:17)

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

如果你有一个Gemfile,那么对于Ruby 2.0来说,最简单的就是bundle install,给你许多宝石的复制副本和任何原生宝石的Ruby-2.0编译版本。

答案 2 :(得分:0)

另一个解决方案是将先前版本的gem(或重新安装)复制(或重新安装)到新安装的版本。如何做到这一点在this question中有详细解答,其中有两个脚本 - 一个到install from local cache,一个到reinstall from the internet(我的)。