【问题标题】:upgrading rails, confusing output升级铁轨,输出混乱
【发布时间】:2019-07-11 14:22:09
【问题描述】:

所以我正在从 4.2.11 -> 5.2.3 迁移,当我尝试捆绑安装时,我得到了大量类似于此的输出部分:

Bundler could not find compatible versions for gem "rest-client":
    In Gemfile:
        rest-client (~> 1.6.9)

    ncsa_data_bridge (= 0.3.0) was resolved to 0.3.0, which depends on
        rest-client (>= 1.0.2, < 2.0)

这些部分中的许多部分是半有意义的,但是如上所述,有一些部分指出了不兼容的版本,但这些版本似乎还不错。在上面的一个中,Gemfile 要求 ~> 1.6.9,而 ncsa_data_bridge 要求 >= 1.0.2,

我的困惑是版本似乎很好。这实际上意味着什么?在其他情况下,版本不匹配更有意义,我可以通过指定兼容的版本来修复它们。在这种情况下,我什至不知道从哪里开始......

需要明确的是,我不需要知道如何解决该特定问题,只需知道如何在更普遍的意义上处理该问题。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 rails-upgrade


    【解决方案1】:

    我不是专家,但在这种情况下,我只会从 Gemfile 中删除版本并让 bundler 处理它。在大多数情况下,它可以完成,但在某些情况下,比如一些阴暗的未维护的 gem,我必须跳进去修补一些东西或重构一些代码以摆脱依赖问题。

    在这种情况下,我的经验法则是,如果 gem 已超过几个月未维护或发现太多类似问题未解决,则放弃 gem 并找到需要或不需要重构的替代方案。

    您的目标应该是尽量减少时间浪费。

    【讨论】:

    • 我最终走上了与此类似的道路。因为我有很多宝石,而且一堆不是 RubyGems 来源的(一些内部宝石,一些直接 github 参考)。所以我使用 rvm 完全清空了我的 gemset,然后注释掉了我所有的 gem,但安装了新的 Rails 版本和捆绑包。然后在绿色上,我会取消注释并重复。最后,我不得不删除一些 gem 上的版本,并在捆绑安装后重新添加新版本。我最终得到了一个内部 gem,我必须“修复”才能使用一个 gem 的更新版本。
    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多