sql >> Base de Datos >  >> NoSQL >> MongoDB

windows:rieles:error al instalar bson_ext

Según esta publicación <arpa/inet.h> no es una biblioteca de Windows, por lo que winsock2.h debe usarse en su lugar.

Para cambiar esta referencia, he hecho lo siguiente**:

  • Vaya a su carpeta de instalación (c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1)
  • Explore un nivel hacia abajo en la carpeta cbson y encuentre cbson.c
  • Abra cbson.c en su editor de texto favorito y busque la línea que dice #include "<arpa/inet.h>"
  • Cambie esa línea a #include winsock2.h
  • Abra un símbolo del sistema, busque la carpeta de instalación y ejecute gem build bson_ext.gemspec
  • Mueva el archivo .gem recién creado a un lugar seguro (%userprofile%\Desktop, por ejemplo).
  • Ve a la carpeta de gemas y elimina toda la carpeta bson_ext
  • De vuelta en la ventana del símbolo del sistema, cambie el directorio al lugar donde colocó el archivo .gem recién creado (cd %userprofile%\Desktop, si está siguiendo estos pasos exactamente)
  • Ejecute gem install bson_ext-1.11.1.gem --local y la gema ahora debería instalarse correctamente.

** Gran advertencia:solo estoy ejecutando un tutorial de mongodb para rieles y no tengo ningún código funcional con el que probar esto. Si bien esto elimina el error de instalación, no tengo forma de determinar si esta solución es completa. Esta referencia de biblioteca es nueva para la versión 1.11.1. Si instala la versión 1.10.2, este problema no ocurrirá (gem install bson_ext -v 1.10.2 ). Dejaré que usted decida qué solución tiene más sentido para usted.

Editar:basado en un cambio en el proyecto bson-ruby en github, una mejor solución sería cambiar esa inclusión para que se lea así:

#ifdef _WIN32
#include <winsock2.h>
#else
#include <arpa/inet.h>
#endif