/ / Warum sind "Gem" und "Bundle" nicht mit der gleichen libxml2? - Rubin, Edelstein, Bundler, libxml2

Warum sind "gem" und "bundle" nicht mit der gleichen libxml2? - Rubin, Edelstein, Bundler, libxml2

Ich scheine in einer rekursiven Schleife der Frustration zu sein. Ich versuche "ein Projekt zu bündeln", aber es ergibt:

An error occurred while installing nokogiri (1.6.6.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v "1.6.6.2"` succeeds before bundling.

Also versuche ich das:

$ gem install nokogiri -v "1.6.6.2"
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.6.2
Parsing documentation for nokogiri-1.6.6.2
Done installing documentation for nokogiri after 2 seconds
1 gem installed

Alles gut! Abgesehen davon, dass ich "bundle install" ausführe, wird mir erneut gesagt, dass ich "gem install nokogiri -v" 1.6.6.2 "" zuerst installieren muss. AHHHHH.

Die Datei mkmf.log weist darauf hin, dass dies ein Problem mit libxml2 (Überraschungsüberraschung) ist.

conftest.c:3:10: fatal error: "libxml/xmlversion.h" file not found
#include <libxml/xmlversion.h>
^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libxml/xmlversion.h>
4:
5: #if LIBXML_VERSION < 20621
6: #error libxml2 is way too old
7: #endif
/* end */

Die Suche nach libxml2 (mit "sudo find / -name libxml2") enthüllt diese Verzeichnisse, die alle mindestens 2.9.0 oder höher zu sein scheinen:

  • / usr / include / libxml2
  • / usr / local / Keller / libxml2
  • / usr / local / opt / libxml2

Also, ist das Problem, dass libxml2 nicht gefunden werden kann? Und wenn ja, wie bekomme ich Bundle-Installation, um zu erkennen, dass Nokogiri bereits installiert ist, oder zumindest in der Lage sein, es auf die gleiche Weise zu installieren wie "Gem Install"? Während ich gerne eine Lösung dafür finden würde, bin ich wirklich daran interessiert zu erfahren, was "unter der Decke" vor sich geht, damit ich in der Zukunft Fehler beheben kann.

Antworten:

2 für die Antwort № 1

Auf meinem Mac OS X habe ich diese Befehle ausgeführt, und das Problem ist behoben.

brew unlink gcc-4.2      # you might not need this step
gem uninstall nokogiri
xcode-select --install
gem install nokogiri