2015-12-22 68 views
1
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    current directory: C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/lib/ruby/gems/2.2.0/gems/hiredis-0.5.2/ext/hiredis_ext 
C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/bin/ruby.exe -r ./siteconf20151222-4124-nisefq.rb extconf.rb 
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c 
net.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default] 
net.c:35:24: fatal error: sys/socket.h: No such file or directory 
compilation terminated. 
make: *** [net.o] Error 1 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of necessary 
libraries and/or headers. Check the mkmf.log file for more details. You may 
need configuration options. 

Provided configuration options: 
     --with-opt-dir 
     --without-opt-dir 
     --with-opt-include 
     --without-opt-include=${opt-dir}/include 
     --with-opt-lib 
     --without-opt-lib=${opt-dir}/lib 
     --with-make-prog 
     --without-make-prog 
     --srcdir=. 
     --curdir 
     --ruby=C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/bin/$(RUBY_BASE_NAME) 
extconf.rb:25:in `block in <main>': Building hiredis failed (RuntimeError) 
     from extconf.rb:23:in `chdir' 
     from extconf.rb:23:in `<main>' 

extconf failed, exit code 1 

Gem files will remain installed in C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/lib/ruby/gems/2.2.0/gems/hiredis-0.5.2 for inspection. 
Results logged to C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0/hiredis-0.5.2/gem_make.out 
An error occurred while installing hiredis (0.5.2), and Bundler cannot continue. 
Make sure that `gem install hiredis -v '0.5.2'` succeeds before bundling. 

人们说,不支持Windows,但extconf.rb对我应该做的一个mswin option ...Hiredis 0.5.2在Windows

任何想法?

回答

1

坏消息:

hiredis目前不能在Windows工作时,Windows特定代码仅仅是样板代码。虽然一些工作已经完成,并且有一些拉动请求(#52似乎是最相关的),但看起来这是一项艰巨的任务。

不幸的是,即使那个pull请求需要使用Visual Studio(而不是MinGW)编译,所以将来二进制文件必须与hiredis Ruby gem捆绑在一起并发货。在将hiredis与Windows兼容之前,维护人员还需要维护人员的长期承诺。

总而言之,它看起来并不像hiredis可以很快安装在Windows上。

好消息:

的hiredis宝石是一种高性能更换Ruby version of the Redis client。如果无法加载,则自动使用较慢的实现。你所要做的就是强制安装hiredis gem来完成gem的依赖。

失败gem install hiredis电话后,您可以手动编写的创业板规范描述in the gem install documentation:在lib\ruby\gems\2.2.0

例如,你可以运行:

gem spec cache\hiredis-0.5.2.gem --ruby > specifications\hiredis-0.5.2.gemspec 

你会得到一个警告,开机一个Rails时5申请,但除此之外它应该工作。

+0

感谢您的详细解答。我得到了新的0.6,至少安装。虽然Rails 5仍然依赖于'5.2',所以我看到了如何让它工作。 –