2014-05-23 2 views
0

많은 기술이 포함 된 패키지가 나에게 배달되었습니다. bundle install --local을 사용하여 번들을 설치하려고하면 이벤트 머신이 제대로 설치되지 않았다는 오류가 표시되고 gem install eventmachine -v '1.0.3'을 실행해야한다고 제안합니다. gem_make.out 내부Ruby gem eventmachine을 설치할 수 없습니다.

$ gem install eventmachine 
Fetching: eventmachine-1.0.3.gem (100%) 
Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
ERROR: Error 

installing eventmachine: 
    ERROR: Failed to build gem native extension. 

c:/Ruby200-x64/bin/ruby.exe extconf.rb 
checking for main() in -lssl... no 
checking for rb_trap_immediate in ruby.h,rubysig.h... no 
checking for rb_thread_blocking_region()... yes 
checking for inotify_init() in sys/inotify.h... no 
checking for __NR_inotify_init in sys/syscall.h... no 
checking for writev() in sys/uio.h... no 
checking for rb_wait_for_single_fd()... yes 
checking for rb_enable_interrupt()... no 
checking for rb_time_new()... yes 
checking for windows.h... yes 
checking for winsock.h... yes 
checking for main() in -lkernel32... yes 
checking for main() in -lrpcrt4... yes 
checking for main() in -lgdi32... yes 
creating Makefile 

make "DESTDIR=" 
generating rubyeventmachine-x64-mingw32.def 
compiling binder.cpp 
In file included from c:\ruby200-x64\devkit\mingw\bin\../lib/gcc/x86_64-w64-ming 
w32/4.7.2/../../../../x86_64-w64-mingw32/include/process.h:12:0, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby/win32.h:60, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby/defines.h:153, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby/ruby.h:70, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby.h:33, 
       from em.h:24, 
       from project.h:150, 
       from binder.cpp:20: 
c:\ruby200-x64\devkit\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../ 
x86_64-w64-mingw32/include/sys/types.h:68:16: error: conflicting declaration 'ty 
pedef _pid_t pid_t' 
In file included from binder.cpp:20:0: 
project.h:97:13: error: 'pid_t' has a previous declaration as 'typedef int pid_t 
' 
In file included from project.h:151:0, 
       from binder.cpp:20: 
ed.h: In member function 'void EventableDescriptor::SetSocketInvalid()': 
ed.h:43:40: warning: overflow in implicit constant conversion [-Woverflow] 
make: *** [binder.o] Error 1 


Gem files will remain installed in c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/event 
machine-1.0.3 for inspection. 
Results logged to c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/ext 
/gem_make.out 

다음과 같은 텍스트가 표시됩니다 :

c:/Ruby200-x64/bin/ruby.exe extconf.rb 
checking for main() in -lssl... no 
checking for rb_trap_immediate in ruby.h,rubysig.h... no 
checking for rb_thread_blocking_region()... yes 
checking for inotify_init() in sys/inotify.h... no 
checking for __NR_inotify_init in sys/syscall.h... no 
checking for writev() in sys/uio.h... no 
checking for rb_wait_for_single_fd()... yes 
checking for rb_enable_interrupt()... no 
checking for rb_time_new()... yes 
checking for windows.h... yes 
checking for winsock.h... yes 
checking for main() in -lkernel32... yes 
checking for main() in -lrpcrt4... yes 
checking for main() in -lgdi32... yes 
creating Makefile 

make "DESTDIR=" 
generating rubyeventmachine-x64-mingw32.def 
compiling binder.cpp 
In file included from c:\ruby200-x64\devkit\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include/process.h:12:0, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby/win32.h:60, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby/defines.h:153, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby/ruby.h:70, 
       from c:/Ruby200-x64/include/ruby-2.0.0/ruby.h:33, 
       from em.h:24, 
       from project.h:150, 
       from binder.cpp:20: 
c:\ruby200-x64\devkit\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include/sys/types.h:68:16: error: conflicting declaration 'typedef _pid_t pid_t' 
In file included from binder.cpp:20:0: 
project.h:97:13: error: 'pid_t' has a previous declaration as 'typedef int pid_t' 
In file included from project.h:151:0, 
       from binder.cpp:20: 
ed.h: In member function 'void EventableDescriptor::SetSocketInvalid()': 
ed.h:43:40: warning: overflow in implicit constant conversion [-Woverflow] 
make: *** [binder.o] Error 1 

사람이 될 수있는 어떤 단서를 가지고 나는 folloing 메시지가 표시되어 있는지 수행 할 때?

DevKit으로 루비 2.0.0을 설치했습니다. 둘 다 64 비트 버전입니다.

+1

그 문제 외에 레일을 돌리기 위해 유닉스 기반의 시스템을 사용해야한다. 개발 윈도우에서 작동 할 수도 있지만 실제로 윈도우에서 프로덕션으로 레일을 실행할 수는 없습니다. – davidb

+0

@GraemeMcLean 지금 그 중 하나를 시도했지만 번들러와 관련이있는 것을 엉망으로 만든 것으로 보입니다. 현재 번들러는 install --local 번들을 할 때 필요한 gemfile을 찾지 못합니다. –

+0

@davidb : 번들은 Mac에 사용되기 전에 사용되었습니다. 내가해야 할 일은 마크 업을 렌더링하기 위해 필요한 젬 (나침반, 웅크 리기, 중개자 등)을 설치하는 것 뿐이고, 실제로 그것을 다시 제거 할 수 있습니다. 빠른 해결 방법이 필요합니다. –

답변

0

문제는 @GraemeMcLean 위의 의견에 언급하는 스레드의 도움으로 해결되었다 (Eventmachine gem install fail) 이 비록 이상한 해결 방법, 그리고 보석의 저자가 정말이 문제를 해결해야한다.

관련 문제