首页 > 解决方案 > 升级铁轨,输出混乱

问题描述

所以我正在从 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, < 2.0。

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

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

谢谢!

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

解决方案


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

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

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


推荐阅读