加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:07:40 所属栏目:百科 来源:网络整理
导读:当尝试运行捆绑安装或捆绑更新时,捆绑包将永久挂起,而不会完成其功能.只有当我指定一个gem才能更新时,它才会完成. 例如: bundle update 将永远挂起,除非我这样使用: bundle update activerecord 然后它会像正常一样完成. 任何帮助将不胜感激. 解决方法 这
当尝试运行捆绑安装或捆绑更新时,捆绑包将永久挂起,而不会完成其功能.只有当我指定一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读