【问题标题】:Why does a Ruby version update require installing bundler?为什么 Ruby 版本更新需要安装 bundler?
【发布时间】:2016-05-09 23:58:11
【问题描述】:

我的应用程序在 Ruby 2.2.4 上运行良好,直到运行测试给我一个错误提示“您使用的 ruby​​ 版本已过时/有错误”。

所以我更新并使用 Ruby 2.3.0 作为我的应用程序的默认版本。之后我收到一条错误消息,提示“找不到捆绑程序”。

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

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

【问题讨论】:

  • 你在使用像 RVM 或 rbenv 这样的 ruby​​ 版本管理器吗?
  • 捆绑器默认情况下不随 Ruby 提供。所以你需要将它安装在新的 ruby​​ 版本之上。

标签: ruby-on-rails ruby rubygems bundler


【解决方案1】:

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

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

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

【讨论】:

  • 那么这是否意味着我之前的捆绑器与旧版本相关联,而新捆绑器与新版本相关联?
  • 我明白了.. 谢谢戴夫
【解决方案2】:

每当您使用 RVM 安装新版本的 Ruby 时,它都会创建一个带有他们称之为 gemsets 的包装器。 Gemsets 不在 ruby​​ 版本之间共享,因此当您安装新的 Ruby 2.3.0 时,它安装时没有任何 gem。

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

完成后,您应该可以在新安装的 Ruby 中使用它了。

【讨论】:

  • 我再次安装了 bundler,但我唯一担心的是为什么我们需要重新安装 bundler。谢谢:)
  • 因为 rvm 如何管理不同版本的 ruby​​。它使得每个版本的 Ruby 都是自包含的,包括它使用的 gem。
【解决方案3】:

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

gem install bundle

那么你应该运行:

bundle install

在您的项目目录中。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多