sql >> Databáze >  >> NoSQL >> MongoDB

windows:rails:chyba při instalaci bson_ext

Podle tohoto příspěvku <arpa/inet.h> není knihovna Windows, takže winsock2.h by měl být použit místo toho.

Pro změnu tohoto odkazu jsem provedl následující**:

  • Přejděte do instalační složky (c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1)
  • Přejděte o úroveň níže do složky cbson a najděte cbson.c
  • Otevřete cbson.c ve svém oblíbeném textovém editoru a najděte řádek, který zní #include "<arpa/inet.h>"
  • Změňte tento řádek na #include winsock2.h
  • Otevřete příkazový řádek, přejděte do instalační složky a spusťte gem build bson_ext.gemspec
  • Přesuňte nově vytvořený soubor .gem na bezpečné místo (například %userprofile%\Desktop).
  • Přejděte do složky drahokamů a smažte celou složku bson_ext
  • Zpět v okně příkazového řádku změňte adresář na místo, kam jste umístili nově vytvořený soubor .gem (cd %userprofile%\Desktop, pokud přesně dodržujete tyto kroky)
  • Spusťte gem install bson_ext-1.11.1.gem --local a drahokam by se měl nyní úspěšně nainstalovat.

** Obrovské upozornění:Právě procházím tutoriál mongodb for rails a nemám žádný funkční kód, pomocí kterého bych to otestoval. I když to odstraní chybu instalace, nemám žádný způsob, jak určit, zda je tato oprava úplná. Tento odkaz na knihovnu je nový pro vydání 1.11.1. Pokud nainstalujete verzi 1.10.2, tento problém nenastane (gem install bson_ext -v 1.10.2 ). Jaké řešení má pro vás větší smysl, nechám na vás.

Edit:Na základě změny v projektu bson-ruby na githubu by bylo lepší změnit to include, aby se četl takto:

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


  1. Schéma Mongoose nebylo pro model zaregistrováno

  2. Jak získám přístup k MongoDB Meteoru z jiného klienta, když je Meteor spuštěn?

  3. Aktualizace MongoDB()

  4. Použití PouchDB s MongoDB