Instale OpenSSL con Ruby para eventmachine en Windows 7 x86

Instale OpenSSL con Ruby para eventmachine en Windows 7 x86.
Quiero instalar eventmachine gem en Windows 7 x86 SP1.
He instaladorubyinstaller-2.1.5.exe dehttp://rubyinstaller.org/downloads/
También he instaladoDevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe.

Ejecuto el comando:

gem install eventmachine --platform=ruby

Por ahora esto es para usareventmachine-1.0.4.

Obtuve el siguiente resultado de la consola:

    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:/Ruby21/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 ruby/thread.h... yes
    checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
    checking for inotify_init() in sys/inotify.h... no
    checking for __NR_inotify_init in sys/syscall.h... *** 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:/Ruby21/bin/ruby
            --with-openssl-config
            --without-openssl-config
            --with-pkg-config
            --without-pkg-config
            --with-ssl-dir
            --without-ssl-dir
            --with-ssl-include
            --without-ssl-include=${ssl-dir}/include
            --with-ssl-lib
            --without-ssl-lib=${ssl-dir}/lib
            --with-ssllib
            --without-ssllib
    C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:395:in `system': Invalid argument - ruby_setenv(LOGONSERVER) (Errno::EINVAL)
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:395:in `block in xsystem'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:321:in `open'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:385:in `xsystem'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:463:in `try_do'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:571:in `block in try_compile'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:524:in `with_werror'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:571:in `try_compile'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:811:in `macro_defined?'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:950:in `block in have_macro'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:918:in `block in checking_for'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:351:in `block (2 levels) in postpone'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:321:in `open'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:351:in `block in postpone'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:321:in `open'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:347:in `postpone'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:917:in `checking_for'
            from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:949:in `have_macro'
            from extconf.rb:72:in `<main>'

    extconf failed, exit code 1

    Gem files will remain installed in C:/Ruby21/lib/ruby/gems/2.1.0/gems/eventmachine-1.0.4 for inspection.
    Results logged to C:/Ruby21/lib/ruby/gems/2.1.0/extensions/x86-mingw32/2.1.0/eventmachine-1.0.4/gem_make.out

ExpedienteC:\Ruby21\lib\ruby\gems\2.1.0\extensions\x86-mingw32\2.1.0\eventmachine-1.0.4\mkmf.log sigue:

    package configuration for openssl is not found
    have_library: checking for main() in -lssl... -------------------- no

    "gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/Ruby21/lib -L.      -lmsvcrt-ruby210  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
    checked program was:
    /* begin */
    1: #include "ruby.h"
    2: 
    3: #include <winsock2.h>
    4: #include <windows.h>
    5: int main(int argc, char **argv)
    6: {
    7:   return 0;
    8: }
    /* end */

    "gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/Ruby21/lib -L.      -lmsvcrt-ruby210  -lssl -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
    conftest.c: In function 't':
    conftest.c:16:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]
    c:/rubydevkit/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lssl
    collect2.exe: error: ld returned 1 exit status
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: 
     6: /*top*/
     7: extern int t(void);
     8: int main(int argc, char **argv)
     9: {
    10:   if (argc > 1000000) {
    11:     printf("%p", &t);
    12:   }
    13: 
    14:   return 0;
    15: }
    16: int t(void) { void ((*volatile p)()); p = (void ((*)()))main; return 0; }
    /* end */

    "gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/Ruby21/lib -L.      -lmsvcrt-ruby210  -lssl -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
    conftest.c: In function 't':
    conftest.c:16:1: error: too few arguments to function 'main'
    conftest.c:8:5: note: declared here
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: 
     6: /*top*/
     7: extern int t(void);
     8: int main(int argc, char **argv)
     9: {
    10:   if (argc > 1000000) {
    11:     printf("%p", &t);
    12:   }
    13: 
    14:   return 0;
    15: }
    16: int t(void) { main(); return 0; }
    /* end */

    --------------------

    have_var: checking for rb_trap_immediate in ruby.h,rubysig.h... -------------------- no

    "gcc -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration   -c conftest.c"
    In file included from conftest.c:6:0:
    C:/Ruby21/include/ruby-2.1.0/ruby/backward/rubysig.h:14:2: warning: #warning rubysig.h is obsolete [-Wcpp]
    conftest.c: In function 't':
    conftest.c:18:55: error: 'rb_trap_immediate' undeclared (first use in this function)
    conftest.c:18:55: note: each undeclared identifier is reported only once for each function it appears in
    conftest.c:18:45: warning: variable 'p' set but not used [-Wunused-but-set-variable]
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: #include <ruby.h>
     6: #include <rubysig.h>
     7: 
     8: /*top*/
     9: extern int t(void);
    10: int main(int argc, char **argv)
    11: {
    12:   if (argc > 1000000) {
    13:     printf("%p", &t);
    14:   }
    15: 
    16:   return 0;
    17: }
    18: int t(void) { const volatile void *volatile p; p = &(&rb_trap_immediate)[0]; return 0; }
    /* end */

    --------------------

    have_func: checking for rb_thread_blocking_region()... -------------------- yes

    "gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/Ruby21/lib -L.      -lmsvcrt-ruby210  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
    conftest.c: In function 't':
    conftest.c:16:1: warning: 'rb_thread_blocking_region' is deprecated (declared at C:/Ruby21/include/ruby-2.1.0/ruby/intern.h:870) [-Wdeprecated-declarations]
    conftest.c:16:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: 
     6: /*top*/
     7: extern int t(void);
     8: int main(int argc, char **argv)
     9: {
    10:   if (argc > 1000000) {
    11:     printf("%p", &t);
    12:   }
    13: 
    14:   return 0;
    15: }
    16: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_blocking_region; return 0; }
    /* end */

    --------------------

    have_header: checking for ruby/thread.h... -------------------- yes

    "gcc -E -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration  conftest.c -o conftest.i"
    checked program was:
    /* begin */
    1: #include "ruby.h"
    2: 
    3: #include <winsock2.h>
    4: #include <windows.h>
    5: #include <ruby/thread.h>
    /* end */

    --------------------

    have_func: checking for rb_thread_call_without_gvl() in ruby/thread.h... -------------------- yes

    "gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/Ruby21/lib -L.      -lmsvcrt-ruby210  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
    conftest.c: In function 't':
    conftest.c:17:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: #include <ruby/thread.h>
     6: 
     7: /*top*/
     8: extern int t(void);
     9: int main(int argc, char **argv)
    10: {
    11:   if (argc > 1000000) {
    12:     printf("%p", &t);
    13:   }
    14: 
    15:   return 0;
    16: }
    17: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_thread_call_without_gvl; return 0; }
    /* end */

    --------------------

    have_func: checking for inotify_init() in sys/inotify.h... -------------------- no

    "gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/Ruby21/lib -L.      -lmsvcrt-ruby210  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
    conftest.c:5:25: fatal error: sys/inotify.h: No such file or directory
    compilation terminated.
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: #include <sys/inotify.h>
     6: 
     7: /*top*/
     8: extern int t(void);
     9: int main(int argc, char **argv)
    10: {
    11:   if (argc > 1000000) {
    12:     printf("%p", &t);
    13:   }
    14: 
    15:   return 0;
    16: }
    17: int t(void) { void ((*volatile p)()); p = (void ((*)()))inotify_init; return 0; }
    /* end */

    "gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/Ruby21/lib -L.      -lmsvcrt-ruby210  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
    conftest.c:5:25: fatal error: sys/inotify.h: No such file or directory
    compilation terminated.
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: #include <sys/inotify.h>
     6: 
     7: /*top*/
     8: extern int t(void);
     9: int main(int argc, char **argv)
    10: {
    11:   if (argc > 1000000) {
    12:     printf("%p", &t);
    13:   }
    14: 
    15:   return 0;
    16: }
    17: int t(void) { inotify_init(); return 0; }
    /* end */

    --------------------

    "gcc -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32 -IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration   -c conftest.c"
    checked program was:
    /* begin */
     1: #include "ruby.h"
     2: 
     3: #include <winsock2.h>
     4: #include <windows.h>
     5: #include <sys/syscall.h>
     6: /*top*/
     7: #ifndef __NR_inotify_init
     8: # error
     9: |:/ === __NR_inotify_init undefined === /:|
    10: #endif
    /* end */

De acuerdo con esta salida, necesito instalar OpenSSL. Lo más probable es que agregar el soporte OpenSSL requerido no resuelva todos los errores obrained, pero comencé desde allí.

He leído este posthttps://github.com/eventmachine/eventmachine/issues/555#issuecomment-68942305 . Pero esta solución parece sucia. ¿No?
Me adelanto a este posthttps://github.com/eventmachine/eventmachine/issues/555#issuecomment-68945346 y eventualmente a este hilohttps://groups.google.com/forum/#!topic/rubyinstaller/qVBRWlHb86Y/discussion .
Leí lo siguiente allí: "Si solo está usando RubyInstaller, extraiga solo las DLL del paquete (usando 7-Zip) ubicado dentro de la carpeta bin".
¿Dónde debo poner los archivos extraídos? Traté de ponerlo aC:\Ruby21\bin yC:\RubyDevKit\bin - nada cambia.

¿Cómo debo corregir estos errores?
¡Muchas gracias!

Probé otras opciones, p. descrito enRuby: problema al instalar EventMachine en Windows 7 .

Algunos antecedentes:
Esto es requerido por mysql2 gem (que depende de eventmachine) y eventualmente por redmine en mi caso.
No soy programador de ruby.

Respuestas a la pregunta(1)

Su respuesta a la pregunta