2013-10-08 63 views
6

我想在我的機器上安裝win32-api寶石和構建本機擴展時,我遇到了一些問題:錯誤安裝寶石:無法Cygwin的堆保留空間,Win32錯誤487

$ 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 

這例如,安裝試圖編譯本機擴展的任何gem時會發生問題,例如json或win32-api。

我已經試着改變這臺機器的虛擬內存的大小,但它沒有工作。

我的配置:

  • 的Ruby版本:1.8.7p371
  • 寶石版本:1.8.24
  • 猛砸3.1.0
  • 的devkit 4.5.2
  • Windows 7的64位
+0

如果這對未來的人來說不會造成太大的破壞性,請先嚐試重新啓動。我結束了卸載/重新安裝,並出現相同的錯誤... 1重新啓動,所有修復。另一個類似的問題:http://stackoverflow.com/questions/18502999/git-extensions-win32-error-487-couldnt-reserve-space-for-cygwins-heap-win32/31970708#31970708 –

回答

12

我正面臨完全相同的問題,並進行了大量的搜索和許多diffe租嘗試,這是固定的對我來說:從http://www.tishler.net/jason/software/rebase/

  1. 下載rebase(下載最新的* .EXE版本),並運行它。

  2. 火了一個提示(「以管理員身份運行」),並轉到您的dev-kit文件夾(例如,我的是C:\Programs\dev_kit

  3. 而在的devkit文件夾,運行devkitvars.bat到的devkit添加到路徑。

  4. 現在做一個cd bin(它讓我到C:\Programs\dev_kit\bin),並從那裏運行:

    rebase -b 0x30000000 msys-1.0.dll 
    

嘗試重新安裝寶石。現在你應該看到Building native extensions. This could take a while...,而不是看到錯誤信息,它會在那裏掛起一段時間。

你的寶石應該在幾分鐘/秒後成功安裝。沒有更多的頭痛:)

+2

對我來說,在devkit bin目錄中,管理員propmt無法識別'rebase'... – user1364684

+0

運行此操作後,原始問題消失了,但後來我開始看到包含「***目標模式不包含'%'」的錯誤。我發現的最簡單的解決方法是使用'gem update --system 2.3.0'降級RubyGems。詳情[這裏](https://github.com/rubygems/rubygems/issues/977)。 – dmccabe

+0

當試圖運行rebase時,會拋出有關'cygwin1.dll從您的計算機中丟失「的錯誤... –