为什么 Ruby 版本更新需要安装捆绑器?

Why does a Ruby version update require installing bundler?

我的应用程序在 Ruby 2.2.4 上 运行 没问题,直到 运行 测试给了我一个错误说 "the ruby version you're using is outdated/buggy"。

所以我更新并使用 Ruby 2.3.0 作为我的应用程序的默认值。之后我收到一条错误消息 "could not find bundler".

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

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

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

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

完成后,您应该可以将其用于新安装的 Ruby。

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

bundler 是一个独立的 gem,不是 Ruby 的一部分,因此无论何时安装新的 Ruby,都必须在 Ruby 中安装 bundler。

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

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

gem install bundle

那么你应该运行:

bundle install

在你的项目目录中。

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