sql >> Databasteknik >  >> NoSQL >> MongoDB

windows:rails:fel vid installation av bson_ext

Enligt detta inlägg <arpa/inet.h> är inte ett Windows-bibliotek, så winsock2.h bör användas istället.

För att ändra denna referens har jag gjort följande**:

  • Gå till din installationsmapp (c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1)
  • Drolla ner en nivå i cbson-mappen och hitta cbson.c
  • Öppna cbson.c i din favorittextredigerare och hitta raden som lyder #include "<arpa/inet.h>"
  • Ändra den raden till #include winsock2.h
  • Öppna en kommandotolk, bläddra till installationsmappen och kör gem build bson_ext.gemspec
  • Flytta den nyskapade .gem-filen till ett säkert ställe (%userprofile%\Desktop, till exempel).
  • Gå upp till gem-mappen och ta bort hela bson_ext-mappen
  • Tillbaka i ditt kommandotolksfönster, byt katalog till den plats där du placerade den nyskapade .gem-filen (cd %userprofile%\Desktop, om du följer dessa steg exakt)
  • Kör gem install bson_ext-1.11.1.gem --local och pärlan bör nu installeras framgångsrikt.

** Stor varning:Jag kör precis igenom en mongodb for rails-tutorial och jag har ingen fungerande kod att testa detta med. Även om detta tar bort installationsfelet, har jag inget sätt att avgöra om den här korrigeringen är komplett. Den här biblioteksreferensen är ny för version 1.11.1. Om du installerar version 1.10.2 kommer detta problem inte att uppstå (gem install bson_ext -v 1.10.2 ). Jag överlåter åt dig att bestämma vilken lösning som är mer vettig för dig.

Redigera:Baserat på en ändring av bson-ruby-projektet på github, skulle en bättre lösning vara att ändra inkluderingen så att den läser så här:

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


  1. Redis publicera/prenumerera:se vilka kanaler som för närvarande prenumererar på

  2. MongoDB:Hur uppdaterar jag ett enstaka delelement i en array, refererat till av indexet i arrayen?

  3. MongoDB och sammansatta primärnycklar

  4. 3 sätt att skapa ett index i MongoDB