ruby on rails-当您的Gemfile需要较旧版本的捆绑程序时,如何“捆绑安装”?

我在一个较旧的具有Gemfile的Rails项目中。 我尝试将宝石添加到Gemfile和bundle exec ...中,但出现错误:

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版本需要捆绑器〜> 1.0.0,但是我已经安装了1.1.5,并将其用于其他项目。 通常我会使用bundle exec ...,但是由于我们正在谈论的是捆绑器,因此它要复杂得多。 如何在使用Gemfile所需的捆绑程序版本时将其添加到我的Gemfile中并运行bundle install

Andrew asked 2020-01-23T05:54:21Z
3个解决方案
101 votes

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

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

然后强制rubygems使用您想要的版本(请参阅这篇文章):

% bundle _1.0.22_ install
alexsanford1 answered 2020-01-23T05:55:04Z
0 votes

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

gem uninstall bundler

gem uninstall bundler

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

gsumk answered 2020-01-23T05:56:33Z
0 votes

错误消息.gemspec有点不准确,因为版本号要求可能来自其他地方,例如.gemspec文件,我就是这种情况:

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

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

spec.add_development_dependency "bundler"
Asbjørn Ulsberg answered 2020-01-23T05:56:57Z
translate from https://stackoverflow.com:/questions/12092928/how-to-bundle-install-when-your-gemfile-requires-an-older-version-of-bundler