2011-02-08 15 views
7

Con Ruby 187, descargué devkit de http://rubyinstaller.org/downloads y seguí las instrucciones por https://github.com/oneclick/rubyinstaller/wiki/Development-Kit. También me aseguré de que devkit se instala correctamente siguiendo la prueba de humo .Bluecloth v2.0.10 con Windows 7 no funciona

Intenté instalar bluecloth (v2.0.10). Se había fracasado con siguiente error:

C:\test\typo>gem install bluecloth --platform=ruby 

Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
ERROR: Error installing bluecloth: 
     ERROR: Failed to build gem native extension. 

c:/Ruby187/bin/ruby.exe extconf.rb 
checking for srand()... yes 
checking for random()... no 
checking for rand()... yes 
checking for bzero() in string.h,strings.h... no 
checking for strcasecmp()... yes 
checking for strncasecmp()... yes 
checking for mkdio.h... yes 
checking for ruby/encoding.h... no 
creating extconf.h 
creating Makefile 

make 
gcc -I. -I. -Ic:/Ruby187/lib/ruby/1.8/i386-mingw32 -I. - 
DRUBY_EXTCONF_H=\"extcon 
f.h\" -DVERSION=\"2.0.4\" -g -O2 -DFD_SETSIZE=256 -I. -Wall -c 
bluecloth.c 

In file included from c:\rubydevkit\mingw\bin\../lib/gcc/ 
mingw32/4.5.1/../../../../include/windows.h:48:0, 
       from c:\rubydevkit\mingw\bin\../lib/gcc/ 
mingw32/4.5.1/../../../../include/winsock2.h:22, 
       from c:/Ruby187/lib/ruby/1.8/i386-mingw32/win32/ 
win32.h:27, 
       from c:/Ruby187/lib/ruby/1.8/i386-mingw32/defines.h: 
186, 
       from c:/Ruby187/lib/ruby/1.8/i386-mingw32/ruby.h:37, 
       from bluecloth.h:14, 
       from bluecloth.c:25: 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:229:23: error: duplicate 'unsigned' 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:238:23: error: duplicate 'unsigned' 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:238:23: error: two or more data types in declaration 
specifiers 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:241:24: error: duplicate 'unsigned' 
bluecloth.c: In function 'bluecloth_initialize': 
bluecloth.c:190:9: warning: unused variable 'utf8text' 
make: *** [bluecloth.o] Error 1 

Gem files will remain installed in c:/Ruby187/lib/ruby/gems/1.8/gems/ 
bluecloth-2.0.10 for inspection. 
Results logged to c:/Ruby187/lib/ruby/gems/1.8/gems/bluecloth-2.0.10/ 
ext/gem_make.out 

C:\test\typo> 
+2

parece que el problema es un bug de la versión 2.0.10. Intente usar una versión anterior como 2.0.7 ('gem install bluecloth -v 2.0.7') –

+0

@LuisLavena ¡Gracias! Podría instalar con 2.0.7. – rpattabi

+0

@LuisLavena teniendo en cuenta el tiempo que me pregunto si tiene sentido para usted mover su comentario a una respuesta? – ScottJShea

Respuesta

6

Parece que hay un error/problema con la versión 2.0.10 de BlueCloth. Puede intentar usar una versión anterior como 2.0.7:

gem install bluecloth -v 2.0.7 

Lo que parece funcionar.

también, probablemente, esto vale la pena mirar última versión (2.2.0?) Y si no funciona, informar de nuevo al autor joya:

http://deveiate.org/projects/BlueCloth/query

13

Si necesitas 2.2.0 (la última versión), Así es como yo tengo que trabajar:

  1. instalar DevKit

  2. Ejecute el comando siguiente para instalar bluecloth:

    gem install bluecloth

    esto va a fracasar miserablemente en la construcción de "extensiones nativas", pero se instalará correctamente el código fuente de la gema.

  3. Patch archivo bluecloth.h (para mí, esto se encuentra en: D: \ ruby ​​\ Rubí-1.9.3-p125 \ lib \ ruby ​​\ gemas \ 1.9.1 \ \ gemas bluecloth-2.2. 0 \ ext), con el parche desde aquí: https://gist.github.com/1539611

  4. Ve a la carpeta de instalación de gemas de bluecloth. Para mí, esto se parece a continuación:

    D:\ruby\Ruby-1.9.3-p125\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0

  5. Ejecutar el siguiente comando:

    rake gem

    Se le puede pedir que instalar algunas otras gemas, siga en consecuencia. Cuando esté listo, debería ver un bluecloth-2.2.0.gem creado. Para mí, se encuentra aquí:

    D:\ruby\Ruby-1.9.3-p125\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0\pkg\bluecloth-2.2.0.gem

  6. Ir a bluecloth-2.2.0.gem ubicación, y ejecute el siguiente comando:

    gem install bluecloth-2.2.0.gem --platform=ruby

+1

Tuve que mover el 'bluecloth-2.2.0.gem' a otro directorio antes de realizar el paso 6. De lo contrario,' gem' eliminó la carpeta de instalación de gem, incluido el archivo '.gem' creado en el paso 5, antes de continuar. – reima

+0

Hacer esto en 'bluecloth-2.2.0.gem' me da un montón de errores de compilación: http://puu.sh/8TPhG.png ¿Alguna idea sobre cómo resolver esto? – Seiyria

+0

No importa, estos errores ocurrieron porque olvidé incluir '#include" ruby.h "' sobre el '# ifdef' ... solo un error al aplicar un parche. – Seiyria

0

Este es el parcheado código bluecloth.h, para personas con prisa ...

#ifndef BLUECLOTH_H 
 
#define BLUECLOTH_H 
 
    
 
#include "ruby.h" 
 

 
#if defined(HAVE_RUBY_ENCODING_H) && HAVE_RUBY_ENCODING_H 
 
# \t define M17N_SUPPORTED 
 
# \t include "ruby/encoding.h" 
 
#endif 
 

 
#include "config.h" 
 
#include "assert.h" 
 
    
 
#include "mkdio.h" 
 
    
 
void mkd_initialize \t \t _((void)); 
 
void mkd_with_html5_tags \t _((void)); 
 
    
 
/* Replace the macro from encoding.h that refers to static 'rb_encoding_list' */ 
 
#ifdef ENC_FROM_ENCINDEX 
 
#undef ENC_FROM_ENCINDEX 
 
#define ENC_FROM_ENCINDEX(idx) (rb_enc_from_index(idx)) 
 
#endif 
 

 
#endif

Cuestiones relacionadas