首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么bundler找不到兼容的版本?

为什么bundler找不到兼容的版本?
EN

Stack Overflow用户
提问于 2020-04-20 19:41:37
回答 3查看 162关注 0票数 1

我正在尝试升级一些gem,bundler在执行bundle update时给了我以下建议

代码语言:javascript
复制
Bundler could not find compatible versions for gem "actionmailer":
  In Gemfile:
    devise_invitable was resolved to 2.0.1, which depends on
      actionmailer (>= 5.0)

    rails (= 5.1.7) was resolved to 5.1.7, which depends on
      actionmailer (= 5.1.7)

我不明白为什么它不使用5.1.7?

还有另一个例子:

代码语言:javascript
复制
Bundler could not find compatible versions for gem "redis":
  In Gemfile:
    redis (~> 3.3.1)

    redis-objects (~> 1.2.1) was resolved to 1.2.1, which depends on
      redis (>= 3.0.2)

    sidekiq-limit_fetch was resolved to 3.4.0, which depends on
      sidekiq (>= 4) was resolved to 5.2.8, which depends on
        redis (>= 3.3.5, < 5)

    sidekiq_newrelic_monitor was resolved to 0.1.2, which depends on
      redis

    split (~> 3.2.0) was resolved to 3.2.0, which depends on
      redis (>= 2.1)

为什么不直接使用3.3.x呢?

Bundler版本1.17.3

来自评论的更新:

代码语言:javascript
复制
cat Gemfile.lock | grep 'redis'
      redis
      redis
    redis (3.3.5)
    redis-objects (1.2.1)
      redis (>= 3.0.2)
      redis (>= 3.3.5, < 5)
      redis (>= 2.1)
  redis (~> 3.3.1)
  redis-objects (~> 1.2.1)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-22 16:51:34

因此,事实证明,bundler 1.x在正确报告依赖关系问题时存在问题,因此我升级到2.x以更好地发现它。我通过从我的gemfiles中注释掉除了rails之外的所有东西来做到这一点。然后一次运行一个bundle update,同时在越来越多的gem中进行评论。当依赖性问题浮出水面时,它解决了这些问题。

票数 0
EN

Stack Overflow用户

发布于 2020-04-20 20:58:28

你能把actionmailer的版本指定为你认为可以解决它的版本吗,比如:actionmailer, 5.1.7

票数 0
EN

Stack Overflow用户

发布于 2020-04-20 21:28:52

如果您在运行bundle update时遇到问题,您可以删除Gemfile.lock文件,然后再次运行bundle update重新生成Gemfile.lock,这可能会解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61321648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档