我的应用程序在Ruby 2.2.4上正常运行,直到运行测试时给出了一个错误,说“你使用的ruby版本已经过时/错误”。
所以我更新并使用Ruby 2.3.0作为我的应用程序的默认值。之后我收到一条错误,上面写着“找不到捆绑包”。
我已经拥有了bundler,为什么更新Ruby版本需要将bundler重新安装到我的应用程序中?
(我正在学习Ruby-on-Rails,所以请我作为初学者。)
答案 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
在您的项目目录中。
如果您有任何疑惑,请告诉我。