安装 gem 时出错:无法为 cygwin 的堆预留空间,Win32 错误 487

Posted

技术标签:

【中文标题】安装 gem 时出错:无法为 cygwin 的堆预留空间,Win32 错误 487【英文标题】:Error installing gem: Couldn't reserve space for cygwin's heap, Win32 error 487 【发布时间】:2013-10-08 22:01:28 【问题描述】:

我正在尝试在我的机器上安装 win32-api gem,但在构建原生扩展时遇到了一些问题:

$ gem install win32-api --no-ri --rdoc
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
C:\Programs\dev_kit\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
ERROR:  Error installing win32-api:
        ERROR: Failed to build gem native extension.

        c:/Programs/ruby/bin/ruby.exe extconf.rb
checking for strncpy_s()... no
creating Makefile

make
      0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x60E90000, RegionSize 0x170000, State 0x10000
C:\Programs\dev_kit\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

在安装任何尝试编译原生扩展(例如 json 或 win32-api)的 gem 时会出现此问题。

我已经尝试过更改这台机器的虚拟内存大小,但没有成功。

我的配置:

Ruby 版本:1.8.7p371 Gem 版本:1.8.24 Bash 3.1.0 开发套件 4.5.2 Windows 7 x64

【问题讨论】:

如果这对未来的人来说不会造成太大的干扰,请先尝试重新启动。我最终卸载/重新安装并遇到相同的错误... 1 重新启动,全部修复。另一个类似的问题:***.com/questions/18502999/… 【参考方案1】:

我遇到了完全相同的问题,在进行了大量搜索和许多不同的尝试之后,这就是为我解决的问题:

    从http://www.tishler.net/jason/software/rebase/下载rebase(下载最新的*.exe版本)并运行。

    启动提示(“以管理员身份运行”)并转到您的 dev-kit 文件夹(例如,我的文件夹是 C:\Programs\dev_kit

    在 dev-kit 文件夹中,运行 devkitvars.bat 将 devkit 添加到路径中。

    现在做一个cd bin(它把我带到C:\Programs\dev_kit\bin)然后从那里运行:

    rebase -b 0x30000000 msys-1.0.dll
    

尝试再次安装 gem。现在您应该看到Building native extensions. This could take a while...,而不是看到错误消息,它会在那里挂起一段时间。

您的 gem 应该会在几分钟/几秒后成功安装。不用再头疼了:)

【讨论】:

对我来说,在 devkit bin 目录中,管理员 propmt 无法识别 'rebase'... 运行后,原来的问题消失了,但后来我开始看到包含“***目标模式不包含'%'”的错误。我发现最简单的解决方法是使用gem update --system 2.3.0 降级RubyGems。详情here. 这会在尝试运行 rebase 时引发有关 cygwin1.dll is missing fromyour computer 的错误...

以上是关于安装 gem 时出错:无法为 cygwin 的堆预留空间,Win32 错误 487的主要内容,如果未能解决你的问题,请参考以下文章

错误:安装 mysql2 时出错:错误:无法构建 gem 原生扩展

错误:安装 mysql2 时出错:错误:无法在 AWS Linux 上构建 gem 原生扩展

在 OSX 上安装 rmagick gem 时出错 - 错误:无法构建 gem 原生扩展

如何在 Ubuntu 16.04 上安装 mysql2 [错误:安装 mysql2 时出错:错误:无法构建 gem 本机扩展。] [重复]

安装 nokogiri (1.10.10) 时出错,Bundler 无法继续

在 Ubuntu 20.04 上安装 mysql2 gem 版本“0.3.21”时出错