【问题标题】:Bundle install could not find compatible versions for gem "bundler"捆绑安装找不到 gem“捆绑器”的兼容版本
【发布时间】:2020-05-13 01:41:58
【问题描述】:

当我输入 bundle install 时,我得到了这个错误。我试图找到解决方案,但没有解决我的问题。请帮帮我。

 Bundler could not find compatible versions for gem "bundler":
      In Gemfile:
        rails (= 4.1.8) was resolved to 4.1.8, which depends on
          bundler (< 2.0, >= 1.3.0)

      Current Bundler version:
        bundler (2.0.1)
    This Gemfile requires a different version of Bundler.
    Perhaps you need to update Bundler by running `gem install bundler`?

    Could not find gem 'bundler (< 2.0, >= 1.3.0)', which is required by gem 'rails
    (= 4.1.8)', in any of the sources.

    Bundler could not find compatible versions for gem "rails":
      In Gemfile:
        rails (= 4.1.8)

        animate-rails was resolved to 1.0.10, which depends on
          rails

【问题讨论】:

  • 删除 gemfile.lock 后尝试
  • 感谢您的评论,但没有任何反应。同样的错误
  • rails 4.1.8 需要捆绑器版本

标签: ruby-on-rails bundle


【解决方案1】:

您的捆绑器 gem 太大。您现在可以通过更改 gemfile 以指定较低版本并再次删除锁定文件来降级。

gem 'bundler', '1.17.1' 

然后在终端中尝试这些命令

gem install bundler -v 1.17.1
gem uninstall bundler -v 2.0.1
bundle update --bundler
bundle install

最后一个安装命令可能是多余的。我正在使用手机,所以很遗憾我无法测试任何东西。

祝你好运!

编辑:

这现在是 Heroku 问题。知道了。关于 Bundler 的 Heroku 文档

Libraries 平台使用以下库管理和运行 >Ruby 应用程序,不能指定。对于应用程序依赖解析和管理,捆绑器是根据您的 Gemfile.lock 的内容安装的。如果您的 Gemfile.lock 中有 BUNDLED WITH,那么您将收到不同版本的 Bundler:

在 Gemfile.lock 中指定 Bundler 2.x 的应用程序将收到 bundler: 2.0.1 在 Gemfile.lock 中指定 Bundler 1.x 的应用程序将收到 bundler: 1.15.2 Gemfile.lock 中没有 BUNDLED WITH 的应用程序将默认为 bundler:1.15.2 有关可用设置的更多信息,请参阅 Bundler 配置。如需详细了解为什么我们只支持特定的捆绑器版本集,请参阅这篇关于您的捆绑器版本的文章。

所以Heroku 似乎只允许某些版本的 Bundler 兼容,相关文档已链接。降级到 1.15.2,再试一次。

【讨论】:

  • 谢谢。当我尝试将更新推送到 heroku 时,出现此错误 Bundler 输出:警告:Bundler 的运行版本(1.15.2)比创建锁定文件的版本(1.17.1)旧。我们建议您通过运行 gem install bundler 升级到最新版本的 Bundler。
  • rb-inotify-0.10.0 需要 ruby​​ 版本 >= 2.2,与远程不兼容:当前版本,ruby 2.0.0p648
  • 哦,然后尝试再次运行所有命令,但将捆绑程序版本 1.17.1 替换为 1.15.2。我看到了一些特定于 Heroku 的东西,我看看能不能找到它
【解决方案2】:

尝试使用

gem install bundler -v 1.17.3
bundle _1.17.3_ install

【讨论】:

  • 这些命令中的第二个,bundle _1.17.3_ install,为我解决了这个问题
【解决方案3】:

您无需卸载最新版本的捆绑程序(尤其是如果您有其他应用程序)。

首先找到您需要的捆绑器版本。 比如运行bundle install之后:

Could not find gem 'bundler (>= 1.3.0, < 2.0)', which is required by gem 'rails (~> 4.2)', in any of the sources.

我需要 1.3.0 和 2.0 之间的任何版本。因此,我会选择 bundler 1.9。

然后,安装捆绑器:

gem install bundler -v 1.9

运行该捆绑器版本以安装 gem:

bundler _1.9_ install

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多