首先是捆绑安装,堆栈级别太深了[英] First ever bundle install, stack level too deep

本文是小编为大家收集整理的关于首先是捆绑安装,堆栈级别太深了的处理方法,想解了首先是捆绑安装,堆栈级别太深了的问题怎么解决?首先是捆绑安装,堆栈级别太深了问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我使用该命令创建了一个全新的Rails项目 rails new qbc --database=mysql.它创建完全罚款的所有文件,但 在捆绑包中安装它错误

$ bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Unfortunately, a fatal error has occurred. Please see the Bundler
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/usr/bin/bundle:23: stack level too deep (SystemStackError)

gist.github.com/3956513

我已经搜索并搜索了这个问题的解决方案,但我似乎无法 找到别人经历过的人.我正在开发Cygwin和我 如果这与它有关,不会感到惊讶.

我尝试用源代码创建Gemfile,在空中有一个宝石 目录和捆绑安装仍然提供相同的错误.我已经跟进了一切 故障排除步骤,重新安装Cygwin和所有包,所有内容.什么 继续抓住我的眼睛是Fetching gem metadata两次......是否有可能 Bundler陷入了某种循环?

推荐答案

cygwin的pthread_attr_getstack默认报告大约90k.我认为Cygwin报告了承诺(二手)堆栈大小,而不是保留(总可用的)大小.然后Ruby正在将(即90k)视为有史以来的最大堆叠大小.

更改初始提交的堆栈大小:

peflags -X409600 `which ruby`

注意大写-X.小写-X更改保留堆栈大小,而不是最初提交的堆栈空间.

这修复了所有Ruby + Rails + Cygwin问题对我来说.

我不太了解Ruby或Cygwin内部,足以知道哪个是正确的修复,但它可能是其中之一.

  • cygwin报告保留堆栈大小从pthread_attr_getstack.
  • ruby​​添加构建步骤以运行上面的PEFLAGS命令.
  • Ruby确定不同方式的可用堆栈空间.
不幸的是,我不认为这个答案很可能会有所帮助,因为它没有任何意义,但我解决了它:

$ gem install rake
$ gem install bundler

$ bundle install

它在该点工作而不遇到相同的错误.

其他推荐答案

Windows二进制文件在可执行标头中编码首选堆栈大小. Cygwin二进制文件默认为大约2米.

您可以更改:

peflags -x8192000 `which ruby`

并重新运行"捆绑安装".现在一段时间就是这样对我的工作.

本文地址:https://www.itbaoku.cn/post/786475.html