RubyInstaller - 错误:无法构建gem原生扩展

时间:2013-04-27 22:47:33

标签: ruby-on-rails installation railsinstaller

我安装了 RailsInstaller ,并将DevKitDevKit/mingw添加到了PATH 当我执行bundle install时,我得到了:

ERROR: Failed to build gem native extension.

"C:/Program Files (x86)/RailsInstaller/Ruby1.9.3/bin/ruby.exe" extconf.rb
C:/Program Files (x86)/RailsInstaller/Ruby1.9.3/bin/ruby.exe: invalid switch in RUBYOPT: -F (RuntimeError)

OS : Windows 8 x64, Administrator Account

1 个答案:

答案 0 :(得分:4)

目前尚不清楚您是否尝试在RailsInstaller之上混合使用RubyInstaller,这是不推荐的。

但是,失败的最常见原因仅仅是因为您将其安装在带有空格的目录中Program Files (x86)

在安装过程中,RailsInstaller会将建议的默认值设置为C:\RailsInstaller

与此类似,RubyInstaller强烈建议避免使用带有空格的路径进行安装(位于安装屏幕中)

Ruby和一些库存在带空格的路径问题,这就是为什么推荐的安装目录为{1}},用于RubyInstaller 1.9.3

路径中的这些空格影响了C扩展等库的编译,并在某些情况下实际执行了程序。

虽然社区已经努力纠正这些问题,但是直到Ruby 2.0,大多数这些问题都已经为Ruby本身解决了。

RubyInstaller Troubleshooting page

中所述
  

特别注意INSTALLATION DIRECTORY和GEM PATH

     

如果您注意到这些目录包含空格,则可能是因为   你在一个带空格的文件夹中安装了Ruby(强烈不推荐)或   因为系统中的另一个环境变量正在干扰。   有空格的目录经常会导致DevKit的GCC出现问题   编译器。

现在,在你的错误回溯中:

C:\Ruby193

它表示其他因素干扰了C:/Program Files (x86)/RailsInstaller/Ruby1.9.3/bin/ruby.exe: invalid switch in RUBYOPT: -F (RuntimeError) 环境变量。

我建议您卸载这些修改并:

然后再试一次。

如果您不想手动处理所有组件的安装,可能应该为RailsInstaller尝试相同的(使用默认的干净安装)。

请注意,RailsInstaller 已经包含DevKit,因此无需单独安装。

最后但同样重要的是,如果您下载单独的DevKit,则必须使用正确的DevKit版本。这在RubyInstaller downloads page中提到:

  

在此页面下,有几个不同版本的开发套件   (DevKit)列出。请为您的版本下载合适的版本   红宝石:

RUBYOPT

希望有所帮助。