ruby – Bundler,当尝试更新或安装时,将永久挂起

前端之家收集整理的这篇文章主要介绍了ruby – Bundler,当尝试更新或安装时,将永久挂起前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当尝试运行捆绑安装或捆绑更新时,捆绑包将永久挂起,而不会完成其功能.只有当我指定一个gem才能更新时,它才会完成.

例如:

bundle update

将永远挂起,除非我这样使用:

bundle update activerecord

然后它会像正常一样完成.

任何帮助将不胜感激.

解决方法

这个问题是由于缺少依赖关系,或者是依赖依赖关系.当您不使用rubygems.org作为您的gemserver(企业环境)时,这很常见.

常见模式:

>您没有安装该宝石
>您没有安装该gem的依赖关系
>您没有在没有依赖项的情况下安装该gem

最简单的技术

创建一个新的gemset,并重新捆绑.这很多次修复了这个问题.

如果由于生产原因您无法执行此操作,并且您没有应用程序历史记录可以反映何时添加问题宝石,那么:

更轻松的技术

自从写了这个答案后,我已经学了一点了,我以为我会在this excellent article上传递如何使用详细调试输出来运行bundler

export DEBUG_RESOLVER=1
bundle  2> debug_output.txt 1> stdio.txt &

这将将所有调试(err)输出转储到debug_output.txt,并将正常的屏幕内容转储到stdio.txt.

你将要转储1>以及因为每次捆绑器将一行转储到2(stderr)时,它会将crlf置入1中.因此,转储1或后台作业.我做这两个,所以我可以在同一个终端工作.

我通常跟着:

tail stdio.txt

确定事情已经开始了,然后:

tail -n 10000 -f debug_output.txt

通过文件搜索/ FAIL]尝试安装依赖关系失败.找到他们中的几个是一样的,你一般都是你的罪魁祸首. stderr适用于捆绑包安装或捆绑更新.

调试您的私人Gemserver技术

我需要使用这种消除流程来确定我的(企业)gemserver索引已经被破坏

>注释掉所有的宝石
>运行bundle更新以确认空集的工作
>取消评论一个gem和bundle更新
> GOTO 3,直到你遇到问题
>研究其依赖

当你完成

用ENV var取消设置

unset DEBUG_RESOLVER

猜你在找的Ruby相关文章