如何在Gemfile需要旧版本的bundler时“捆绑安装”?

时间:2012-08-23 13:38:31

标签: ruby-on-rails ruby bundler

我在一个有一个Gemfile的旧Rails项目中。我试图在Gemfile和bundle install中添加一个gem但是收到错误:

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并在使用它所需的bundler版本时运行bundle install

4 个答案:

答案 0 :(得分:84)

首先,您需要安装相应版本的bundler:

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

然后强制rubygems使用您想要的版本(see this post):

% bundle _1.0.22_ install

答案 1 :(得分:0)

我在macOS Mojave上遇到了同样的问题。我安装了捆绑软件gem的其他版本,并卸载了当前版本。

gem install bundler -i '2.0.1'

gem uninstall bundler

然后,我可以选择要卸载的版本,然后选择要创建问题的版本。

答案 2 :(得分:0)

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

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

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

spec.add_development_dependency "bundler"

答案 3 :(得分:0)

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

gem install bundler:2.2.11
bundle _2.2.11_ install