95

我在一个具有 Gemfile 的旧 Rails 项目中。我尝试向 Gemfile 添加一个 gem,bundle install但出现错误:

Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    rails (= 3.0.0) ruby depends on
      bundler (~> 1.0.0) ruby

  Current Bundler version:
    bundler (1.1.5)

This Gemfile requires a different version of Bundler.

它使用的 Rails 版本需要 bundler ~>1.0.0,但我安装了 1.1.5 并将其用于我的其他项目。通常我会使用bundle exec ...,但由于这是我们正在谈论的捆绑程序,它比这更复杂一些。如何在我的 Gemfile 中添加 gem 并bundle install在使用它所需的 bundler 版本时运行?

4

4 回答 4

185

首先,您需要安装适当版本的捆绑器:

% gem install bundler -v '~> 1.0.0'
Successfully installed bundler-1.0.22

然后强制 ruby​​gems 使用你想要的版本(见这篇文章):

% bundle _1.0.22_ install
于 2012-08-23T14:09:14.467 回答
3

错误消息In Gemfile: bundler (~> 1.16)有点不准确,因为版本号要求可能来自其他地方,例如.gemspec文件,对我来说就是这种情况:

spec.add_development_dependency "bundler", "~> 1.16"

从文件中删除版本号.gemspec为我解决了这个问题:

spec.add_development_dependency "bundler"
于 2019-09-18T09:19:20.710 回答
3

这是我必须做的才能让它与以前版本(2.2.11)的捆绑器一起安装:

gem install bundler:2.2.11
bundle _2.2.11_ install
于 2021-06-14T18:37:31.550 回答
2

我在 macOS Mojave 上遇到了同样的问题。我安装了不同版本的 bundler gem 并卸载了当前版本。

gem install bundler -i '2.0.1'

gem uninstall bundler

然后让我选择要卸载的版本,然后我选择造成问题的版本。

于 2019-09-04T18:13:31.490 回答