2011-10-15 9 views
12

Estoy haciendo una instalación de paquete y todas las gemas funcionan bien excepto JSON cuando se recibe la joya JSON Recibo este error.No se puede instalar la gema JSON en los rieles usando Windows

Installing json (1.6.1) with native extensions c:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:55 
    2:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::E 
    xtensionBuildError) 

      c:/Ruby192/bin/ruby.exe extconf.rb 
    checking for re.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. 

¿Alguna idea de qué podría estar causando este error?

Respuesta

4

Esto se debe a que esta joya usa un trozo de código escrito en C. Para que funcione correctamente, necesita el compilador c instalado en su máquina. Como una forma, tratar de utilizar json_pure escrito en Ruby puro

16

Usted está trabajando con Windows, por lo que el kit de desarrollo de RubyInstaller puede ayudarle a: http://rubyinstaller.org/add-ons/devkit/

El SDK de instala un compilador de C (y algunas otras cosas) para compilar partes escritas en C

Instálelo y vuelva a intentar instalar la gema, quizás con la opción --platform=ruby.

Los detalles se pueden encontrar en https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

+5

Esta es la respuesta correcta, pero asegúrese de hacer actualizar joya --system o todavía tendrá problemas con el RubyInstaller – pguardiario

+1

Niza, resuelto mi problema DevKit +1 – a5his

+2

¡Incluso hay un instalador Chocolatey NuGet para devkit! http://chocolatey.org/packages/ruby.devkit – mcandre

0

No soy un experto en ROR, pero el problema de instalación JSON que me dieron durante la instalación de Redmine se resolvió de la siguiente manera:

  • Crear una marca .bat en D: \ LANGS \ MinGW \ bin
  • Mantener este directorio en el PATH
  • Editar la make.bat arriba y añadir una línea, D: \ LANGS \ MinGW \ MSYS \ 1.0 \ bin \ make.exe

Lo que me di cuenta es que mingw32-make.exe nunca funcionó, pero funcionó 'D: \ LANGS \ MinGW \ msys \ 1.0 \ bin \ make.exe'.

Nota: Mi instalación de MinGW está en D: \ LANGS \. Por favor haga los cambios en consecuencia en su instalación específica.

-1

Sí, instale el kit de desarrollo. Además, deberá ejecutar algunas líneas de comando para instalarlo (no solo descargarlo y ejecutarlo).

Descárguelo, ejecútelo para extraerlo en algún lugar (permanente). Luego cd, ejecute ruby ​​dk.rb init y ruby ​​dk.rb install para vincularlo a las instalaciones de ruby ​​en su ruta.

Una guía para los que está aquí:

https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Cuestiones relacionadas