gpt4 book ai didi

ruby-on-rails - 首次 bundle 安装,堆栈级别太深

转载 作者:行者123 更新时间:2023-12-03 21:39:31 25 4
gpt4 key购买 nike

我使用命令创建了一个全新的 rails 项目rails new qbc --database=mysql .它可以完美地创建所有文件,但是
在 bundle 安装时出错

$ bundle 安装
从 https://rubygems.org/获取 gem 元数据............
从 https://rubygems.org/.. 获取 gem 元数据
不幸的是,发生了 fatal error 。请参阅 bundler
http://bit.ly/bundler-issues 上的故障排除文档。谢谢!
/usr/bin/bundle:23: 堆栈级别太深 (SystemStackError)

gist.github.com/3956513

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

我尝试创建一个只有源代码和一个 gem 的 Gemfile
directory 和 bundle install 仍然给出相同的错误。我已经关注了所有
故障排除步骤,重新安装 Cygwin 和所有软件包,一切。什么
一直吸引我的是Fetching gem metadata两次……有没有可能
bundler 陷入某种循环?

最佳答案

Cygwin 的 pthread_attr_getstack 默认报告大约 90k。我认为 Cygwin 正在报告 promise (迄今为止使用的)堆栈大小,而不是 保留 (总可用)大小。然后 Ruby 将其(即 90k)视为有史以来的最大堆栈大小。

更改初始 promise 堆栈大小:

peflags -X409600 `which ruby`

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

这为我解决了所有 Ruby+Rails+Cygwin 问题。

我不太了解 Ruby 或 Cygwin 的内部结构,无法知道哪个是正确的修复方法,但它可能就是其中之一。
  • Cygwin 从 pthread_attr_getstack 报告保留的堆栈大小。
  • Ruby 添加了一个构建步骤来运行上面的 peflags 命令。
  • Ruby 以不同的方式确定可用堆栈空间。
  • 关于ruby-on-rails - 首次 bundle 安装,堆栈级别太深,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079890/

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