MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

windows:rails:errore durante l'installazione di bson_ext

Secondo questo post <arpa/inet.h> non è una libreria di Windows, quindi winsock2.h dovrebbe essere usato invece.

Per modificare questo riferimento, ho fatto quanto segue**:

  • Vai alla cartella di installazione (c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1)
  • Scappa di un livello nella cartella cbson e trova cbson.c
  • Apri cbson.c nel tuo editor di testo preferito e trova la riga che dice #include "<arpa/inet.h>"
  • Cambia quella riga in #include winsock2.h
  • Apri un prompt dei comandi, vai alla cartella di installazione ed esegui gem build bson_ext.gemspec
  • Sposta il file .gem appena creato in un posto sicuro (%userprofile%\Desktop, per esempio).
  • Vai alla cartella gem ed elimina l'intera cartella bson_ext
  • Nella finestra del prompt dei comandi, cambia directory nella posizione in cui hai posizionato il file .gem appena creato (cd %userprofile%\Desktop, se stai seguendo esattamente questi passaggi)
  • Esegui gem install bson_ext-1.11.1.gem --local e la gemma ora dovrebbe essere installata correttamente.

** Avvertimento enorme:sto solo eseguendo un tutorial su mongodb for rails e non ho alcun codice funzionante con cui testarlo. Anche se questo rimuove l'errore di installazione, non ho modo di determinare se questa correzione è completa. Questo riferimento alla libreria è nuovo per la versione 1.11.1. Se installi la versione 1.10.2, questo problema non si verificherà (gem install bson_ext -v 1.10.2 ). Lascio a te decidere quale soluzione ha più senso per te.

Modifica:sulla base di una modifica al progetto bson-ruby su github, una soluzione migliore sarebbe quella di modificare l'inclusione in una lettura in questo modo:

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