2015-12-22 69 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',所以我看到了如何讓它工作。 –