首页 > Ruby/Rails开发 > ERROR: Failed to build gem native extension

ERROR: Failed to build gem native extension

2015年11月10日

ERROR: Failed to build gem native extension

http://www.cnblogs.com/puresoul/archive/2011/12/01/2270890.html

(转)ERROR: Failed to build gem native extension – Glen He – 博客园

 这几天本人在Window server 2003(工作机)中搭建Cucumber环境时(可以看我的另一篇文章:http://www.cnblogs.com/puresoul/archive/2011/11/18/2254407.html),当运行gem install cucumber时,报错:ERROR: Failed to build gem native extension.到处搜寻未果,最后在这里找到了答案:https://github.com/oneclick/rubyinstaller/wiki/Troubleshooting,特此转来。本人就不做翻译了,有需要的朋友尽管拿去,原文如下:

You’ve installed both RubyInstaller and DevKit following the instructions but during gem installation, you receive a message like this:

C:\devkit>gem install rdiscount --platform=ruby
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing rdiscount:
       ERROR: Failed to build gem native extension.

C:/ruby/bin/ruby.exe extconf.rb
C:/ruby/bin/ruby.exe: No such file or directory -- extconf.rb
(LoadError)

Or sometimes just this:

ERROR: Error installing rdiscount: 
ERROR: Failed to build gem native extension. 
C:/Ruby187/bin/ruby.exe extconf.rb

This has been reported to our group here and here.

After a long back and forth investigation, we found two possible causes for this issue: COMSPEC environment variable (scenario A) and AutoRun registry setting (scenario B), both described below:

Scenario A

Using a command prompt, invoke the following command:

SET COMSPEC

If in the output you see something different than cmd.exe as value for that variable, then please adjust it to use cmd.exe

Some tools might change your command processor command, which interferes with Ruby invoking child processes.

Change that and try to install the gem again.

Scenario B

If the problem persist, invoke the following commands in the same command prompt:

REG QUERY "HKCU\Software\Microsoft\Command Processor"
REG QUERY "HKLM\Software\Microsoft\Command Processor"

Execute each line individually. Once you run it, will see something like this:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor
    CompletionChar    REG_DWORD    0x9
    DefaultColor    REG_DWORD    0x0
    EnableExtensions    REG_DWORD    0x1
    PathCompletionChar    REG_DWORD    0x9

The columns of information are Key, Type and Value. If you see a key named AutoRun, there is a chance this is the culprit of the error you’re receiving.

AutoRun interferes with Ruby messing with child process executing and by result, affecting gem installation. Please remove it with the following command:

REG DELETE "HKCU\Software\Microsoft\Command Processor" /v AutoRun

Once you’re done, try opening a new command prompt and executing gem installation again.

分类: Ruby/Rails开发 标签:
本文的评论功能被关闭了.