所以我要从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。
我的困惑是,看起来版本不错。这到底是什么意思?在其他情况下,版本不匹配更有意义,我可以通过指定兼容的版本来修复它们。在这种情况下,我什至不知道从哪里开始...
要明确地说,我不需要知道如何解决该特定问题-只是如何从更笼统的角度解决问题。
谢谢!
答案 0 :(得分:1)
我不是专家,但是在这种情况下,我只是从Gemfile中删除版本,然后让bundler处理它。在大多数情况下,它可以完成工作,但在某些情况下,例如某些未维护的可遮挡的宝石,我不得不跳进去修补某些东西或重构一些代码以摆脱依赖问题。
在这种情况下,我的经验法则是抛弃宝石,如果宝石未经维护超过几个月或发现许多未解决的类似问题,则需要进行重构或不进行重构。
您的目标应该是减少时间浪费。