gpt4 book ai didi

ruby - Bundler 在安装或更新 gem 时卡住了

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:58 29 4
gpt4 key购买 nike

我最近尝试运行 bundle update,但我的一个内核卡在了 100%。我尝试重置所有内容,包括删除我的 RVM gemset,但没有任何帮助。

我使用 bundle install --verbose 查看发生了什么,整个过程在此时停止:

Unmet Dependencies: ["spicycode-rcov", "tenderlove-frex"]
Fetching gem metadata from http://rubygems.org/
Query List: ["spicycode-rcov", "tenderlove-frex"]
Query Gemcutter Dependency Endpoint API: spicycode-rcov tenderlove-frex
Fetching from: http://rubygems.org/api/v1/dependencies?gems=spicycode-rcov,tenderlove-frex
HTTP Success
Query List: []

我该如何解决?

最佳答案

我已经多次遇到这种行为。 Bundler 可能不会卡住,而是正在探索可能的 gem 版本的退化的大搜索空间。您可以通过设置环境变量 DEBUG_RESOLVER=1 获取有关它如何评估可能性的详细调试信息。阅读“How does Bundler bundle?”以了解解析器跟踪的算法和输出。

我通过从 Bundler 持续回溯并重试许多不同的候选版本并将版本限制为大于某个最新版本的跟踪中识别出一个 gem 来解决这个问题。这通常有助于 Bundler 大大减少搜索空间并快速完成其评估。当然,您添加的约束可能会与另一个 gem 的要求产生无法解决的冲突,在这种情况下,您可以逐步放宽您的约束,直到它兼容。

我有一个个人的 TODO 可以返回到这些退化的解决条件之一,并将其​​转换为一组可以公开的依赖项和版本历史记录,这样我就可以向 Bundler 开发人员提交一个可重现的问题。 (我们的许多 gem 都是我们公司私有(private)的。)这 comment在源代码中表示他们认为算法总是在合理的时间内完成,但根据经验,有些困难的案例具有有效的解决方案,无法通过小时的计算来解决。

如果你的情况与我的情况类似,但完全依赖于公共(public) gems,那么如果你可以将问题 gemfile 和 gemset 公开并 submit an issue,这将是对社区的一种服务。到 Bundler,以便深入了解算法的人可以改进它。

Issue #2030表示可能存在解析器实际上陷入无限循环的错误。如果您看到这方面的证据,您可能希望将您的 gemfile 提交到该问题,尤其是当您的重现案例小于已提交的案例时。

关于ruby - Bundler 在安装或更新 gem 时卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14585728/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com