为什么Ruby版本更新需要安装bundler?

时间:2016-05-09 23:58:11

标签: ruby-on-rails ruby rubygems bundler

我的应用程序在Ruby 2.2.4上正常运行,直到运行测试时给出了一个错误,说“你使用的ruby版本已经过时/错误”。

所以我更新并使用Ruby 2.3.0作为我的应用程序的默认值。之后我收到一条错误,上面写着“找不到捆绑包”。

我已经拥有了bundler,为什么更新Ruby版本需要将bundler重新安装到我的应用程序中?

(我正在学习Ruby-on-Rails,所以请我作为初学者。)

3 个答案:

答案 0 :(得分:3)

安装在计算机上的每个Ruby副本都有自己的已安装宝石。在Ruby安装之间不共享gem的一个原因是某些gem包含已编译的本机代码,并且对于不同版本的Ruby,编译输出可能不同。

bundler是一个独立的gem,不是Ruby的一部分,因此每当你安装一个新的Ruby时,你必须在Ruby中安装bundler。

这与您是否使用Ruby版本管理器(chruby,rbenv,rvm等)无关;如果你安装一个新的Ruby,它需要自己的一组安装的宝石。

答案 1 :(得分:1)

每当您使用RVM安装新版本的Ruby时,它都会创建一个包含所谓gemsets的包装器。宝石版本之间不共享Gemsets,因此当您安装新的Ruby 2.3.0时,它安装时没有任何宝石。

要解决此问题,只需运行bundler即可安装gem install bundler

完成后,您应该可以使用它来安装Ruby。

答案 2 :(得分:1)

我也遇到过这样的问题。首先,我使用选定的RVM版本运行它。

gem install bundle

然后你应该运行:

bundle install

在您的项目目录中。

如果您有任何疑惑,请告诉我。