ruby-on-rails - 升级铁轨,输出混乱
问题描述
所以我正在从 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。
我的困惑是,这些版本似乎都很好。这实际上意味着什么?在其他情况下,版本不匹配更有意义,我可以通过指定兼容的版本来修复它们。在这种情况下,我什至不知道从哪里开始......
需要明确的是,我不需要知道如何解决该特定问题——只需知道如何在更普遍的意义上解决该问题。
谢谢!
解决方案
我不是专家,但在这种情况下,我只会从 Gemfile 中删除版本并让 bundler 处理它。在大多数情况下,它可以完成,但在某些情况下,比如一些阴暗的未维护的 gem,我必须跳进去修补一些东西或重构一些代码以摆脱依赖问题。
在这种情况下,我的经验法则是放弃 gem 并找到一个替代方案,无论是否需要重构,如果 gem 已经无人维护超过几个月或发现太多类似的问题未解决。
您的目标应该是尽量减少时间浪费。
推荐阅读
- instagram-api - Instagram 访问令牌 - “您必须提供有效的 client_secret 和代码”错误
- python - pydub如何过滤掉低于某个阈值的任何声音
- javascript - AWS S3 headObject 未返回 JS SDK 中的所有元数据值
- angular - 单个日历中的日期范围选择器 ngx-daterangepicker-material
- node.js - SyntaxError: Cannot use import statement outside a module 使用 mocha 运行测试时抛出错误
- javascript - ASP.NET Core 3 Google 地图破坏容器(razorpages)
- angular - 在 Angular 中,我为什么要使用 jasmine.createSpyObj 而不是简单地将对象传递给提供者的 useValue?
- python - 使用 Kaleido 导出 Plotly 图表不起作用?
- python - 如何在 Python 中读取没有 Premature 的 EOF 的船长原型消息(.bin 文件)?
- vb.net - 对 List(of class) 中的字符串属性进行排序