MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

windows:rails:erro ao instalar bson_ext


De acordo com este post <arpa/inet.h> não é uma biblioteca do Windows, então winsock2.h deve ser usado em seu lugar.

Para alterar essa referência, fiz o seguinte**:
  • Vá para sua pasta de instalação (c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1)
  • Aprofunde um nível na pasta cbson e encontre cbson.c
  • Abra cbson.c em seu editor de texto favorito e encontre a linha que diz #include "<arpa/inet.h>"
  • Mude essa linha para #include winsock2.h
  • Abra um prompt de comando, navegue até a pasta de instalação e execute gem build bson_ext.gemspec
  • Mova o arquivo .gem recém-criado para um local seguro (%userprofile%\Desktop, por exemplo).
  • Vá até a pasta gem e exclua toda a pasta bson_ext
  • De volta à janela do prompt de comando, altere o diretório para onde você colocou o arquivo .gem recém-criado (cd %userprofile%\Desktop, se estiver seguindo essas etapas exatamente)
  • Execute gem install bson_ext-1.11.1.gem --local e a gem agora deve ser instalada com sucesso.

** Grande ressalva:estou apenas executando um tutorial do mongodb for rails e não tenho nenhum código funcional para testar isso. Embora isso remova o erro de instalação, não tenho como determinar se essa correção é completa. Esta referência de biblioteca é nova para a versão 1.11.1. Se você instalar a versão 1.10.2, este problema não ocorrerá (gem install bson_ext -v 1.10.2 ). Vou deixar para você decidir qual solução faz mais sentido para você.

Edit:Com base em uma alteração no projeto bson-ruby no github, uma correção melhor seria alterar esse include para ler assim:
#ifdef _WIN32
#include <winsock2.h>
#else
#include <arpa/inet.h>
#endif