使用bundler安装更新版本的bundler

时间:2015-06-04 05:04:15

标签: ruby bundler

如果我更改了Gemfile中所需的bundler版本,然后输入bundle,我会

Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    bundler (>= 1.10.2) ruby

  Current Bundler version:
    bundler (1.9.9)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Could not find gem 'bundler (>= 1.10.2) ruby in any of the sources

是否可以要求bundler安装新版本的bundler,而不是输入gem install bundler

6 个答案:

答案 0 :(得分:36)

Seems like捆绑包无法捆绑自己:)

所以你必须运行gem install bundler

答案 1 :(得分:12)

我认为你可以运行gem update bundler,对吗?它对我有用。

答案 2 :(得分:7)

从v1.14开始,现在有:bundle update --bundler

https://bundler.io/v2.0/man/bundle-update.1.html#OPTIONS

答案 3 :(得分:1)

如果gem install bundler没有升级捆绑软件版本,请运行gem install bundler --pre

答案 4 :(得分:0)

我发现 bundle update --bundler 在设置默认 Bundler 版本时效果不佳。这可能会在运行 bundle 时导致警告。我知道上面的其他人已经提到使用 gem 安装更高版本的 bundler,因此在此处扩展这些答案。

  1. 您可以运行以下命令,但这可能会出现问题,因为它会在更新所有本地 gem 时破坏系统上的本地 gem。

    gem update --system
    
  2. 以下方法是确保 Bundler 更新的更安全的方法

  • 获取您的 gem 环境并记下 INSTALLATION_DIRECTORY
    gem environment
    
  • 然后运行以下命令
    cd <INSTALLATION DIRECTORY>/specifications/default
    rm bundler-<old_default_version>.gemspec
    gem install --default bundler -v <new_default_version>
    
  1. 如果您遵循了 2 并且仍然不起作用,请运行
    gem install bundler:<new_default_version>
    
    确保您的本地存储库使用正确的版本

答案 5 :(得分:-7)

转到 gemfile.lock 并将捆绑包版本更改为VERSION您想要(1.9.9)然后,

再次运行 wrap_parameters :user, include: [:name, :password, :password_confirmation]