【问题标题】:How to change the version of bundler being used in rails?如何更改 rails 中使用的 bundler 版本?
【发布时间】:2016-04-18 20:25:39
【问题描述】:

当我运行以下命令时,它会为我提供可用的已安装版本的 bundler:

命令:

gem list | grep "bundle"

输出:

bundler (1.11.2, 1.10.6, 1.10.4, 1.3.6, 1.3.0, 1.3.0.pre)

我使用以下命令获得的当前版本的 bundler 是 1.11.2:

bundler --version

我想使用 1.3.6 版本 如何将当前版本的 bundler 替换为可用版本?

【问题讨论】:

  • 2019 年 9 月。仍然没有办法从所有已安装的捆绑器中强制使用特定版本的捆绑器?

标签: ruby-on-rails version-control rubygems bundler


【解决方案1】:

通常在开发过程中,Bundler 是从它在您的系统上的可执行文件中使用的,所以我不相信您可以在 Gemfile 中指定特定版本,例如。 (不过,您可以尝试一下)。但是,您可以安装您喜欢的版本并强制 shell/rubygems 使用该版本:

$ gem install bundler -v 1.3.6
...
1 gem installed

$ bundle _1.3.6_ -v
Bundler version 1.3.6

为了让我的机器默认使用 1.3.6,我必须卸载 1.11.2。

更新:我尝试在我的一个项目中指定 gem 'bundler', '~> 1.3' 并且它有效,尽管用于捆绑程序的 CLI 仍使用系统默认版本。

【讨论】:

  • 这样做后,当我运行bundler --version 命令时,它仍然显示1.11.2,这是怎么回事?
  • 除非删除其他版本,否则每次都必须添加_1.3.6_
  • 我刚刚更新了我的答案。另一个好问题是,如何强制 ruby​​gems 使用已安装 gem 可执行文件的特定版本?至于那个,我不知道。我想我会为此提出一个问题,因为现在我很好奇。
  • 您可以使用bundle exec 使用项目中指定的捆绑程序版本运行所需的命令。例如:bundle exec rails s 将使用当前项目的 Gemfile 中指定的捆绑程序运行 rails s
【解决方案2】:

2019 年 9 月

如果您想将 bundler 1 升级到 2,那么您应该执行以下操作:

1- 升级到 Bundler 2 的第一步是通过运行安装 Bundler 2 gem:

gem install bundler

2- 安装 Bundler 2 后,Bundler 将根据您的应用程序的 Gemfile.lock 自动在版本 1 和版本 2 之间切换,基于 Gemfile.lock 中的BUNDLED WITH ((version))

注意:

在下一步之前,您应该提交您的 Gemfile 和 Gemfile.lock,以便您可以在需要时恢复到 bundler 版本 1

3- 要从捆绑器 1 升级到 2,请运行:

bundle update --bundler

答案基于official bundler update guide

【讨论】:

  • 运行 bundle update --bundler 更新了我的锁定文件
【解决方案3】:

使用检查已安装的捆绑器版本

gem list bundler

【讨论】:

    【解决方案4】:

    要更改您的捆绑器默认版本,请使用bundle config default <the desired version>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-24
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多