2008-10-03 5 views
5

Tratando de actualizar algunas gemas en una máquina Windows y que continuamente obtener esta salida de error para las gemas que no tienen binarios pre-compilados:¿Cómo puedo hacer que las instalaciones de Ruby Gems en Windows usen MinGW para hacer y compilar?

opciones de configuración prestados: 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 --srcdir =. --curdir --ruby = c:/server/Ruby/bin/ruby ​​

Estas son las opciones de configuración que se proporcionan en el fichero de rubí extconf.rb durante la instalación de la gema.

He instalado MinGW, así que debería tener todo lo que necesito para instalar, fabricar y compilar estas gemas. Sin embargo, no sé cómo cambiar la configuración de RubyGems para que cuando se llame a extconf.rb incluya las opciones apropiadas que apuntan al directorio de inclusión de MinGW.

Respuesta

3

Hay un DevKit que bien podría ser lo que buscas.

+0

Gracias - No sabía hasta la lectura que las gemas deben compilarse con el mismo compilador utilizado para el lenguaje Ruby. Siendo ese el caso, he ido por el otro lado: he instalado VC6 y, con un pequeño complemento de código en un archivo de cabecera, todo funciona bien. Gracias. – Yardboy

1

No sé si esto funciona con el nativo Windows Ruby, pero si utiliza la versión de Cygwin y tiene un Cygwin completo instalado (compiladores, etc.), entonces no debería tener ningún problema. Hemos podido usa muchas gemas que requieren material compilado.

-1

En general, en mi experiencia, el código diseñado para un sistema Unix puede ser muy difícil para trabajar en MinGW. Para un puerto rápido, use CygWin. O haga un puerto completo del software al host de Windows, incluido el uso del shell nativo de Windows y la API del sistema operativo, que es bastante costoso en términos de tiempo, pero vale la pena si planea soportar Windows a largo plazo.

No estoy familiarizado con este paquete de software en particular, esto es solo una observación general sobre cómo portar algunas otras piezas cobardes de código a Windows.

0

Tuve el mismo problema.

La única forma que encontré para obtener gemas que no tenían binarios compilados previamente -como parsetree- para ejecutar en Windows fue recompilar la fuente de Ruby usando Mingw y copiar varias bibliotecas y aplicaciones de la instalación visual de C++ Yo ya tenía. Lo que copié incluía la biblioteca zlib, así como la biblioteca y la aplicación iconv.

Nota: Estoy usando esta configuración como configuración de prueba. No utilizaría una configuración de este tipo para la producción (ya que quién sabe qué sucede cuando una biblioteca de una distribución a otra).

1

Yardboy,

Lástima que usted no mencionó cuál es la gema está tratando de actualizar, sólo se puso en su lugar la salida de opciones.

Además, algunas de estas gemas necesitan encabezados y bibliotecas de desarrollo, no solo el compilador (MinGW).

Además, MinGW va a funcionar mientras se crea la compilación de Ruby que tiene con MinGW.

Se está trabajando para facilitar esto, pero se necesitan los requisitos de compilador, encabezados y biblioteca en all las plataformas, no solo en Windows.

Puede encontrar más información y recursos sobre my blog

Saludos.

Cuestiones relacionadas