So installieren Sie Nokogiri unter Mac OS Sierra 10.12

74

Ich habe Probleme bei der Installation von Nokogiri (1.6.8.1) unter Mac OS Sierra 10.12.

Ich habe versucht, brew install libxml2 libxsltdie Installationsverzeichnisse mithilfe von Befehlszeilenoptionen zu verwenden und dann zu referenzieren, aber es hat nicht geholfen.

Julian Popov
quelle
Beim Versuch, Nokogiri> v1.6.8.1 nach der Installation von Mac OS Sierra zu installieren, stellte ich fest, dass v1.7.1 Probleme hat, wenn dies die erste Version ist, die mit dieser Version von Ruby installiert wird. Durch die Installation von Version 1.6.8.1 und die Aktualisierung mithilfe gem update nokogirider dazwischen liegenden Versionen, bis Version 1.7.1 die Installation ermöglichte. Es ist ein Hack, aber es hat funktioniert und als ich es installiert hatte, hatte ich keine Lust mehr zu graben.
der Blechmann

Antworten:

181

Öffnen Sie Xcode und aktualisieren Sie über das Menü XCode-> PreferencesIhre Befehlszeilentools (Xcode 8.0).

Dann mach:

bundle config build.nokogiri --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2
bundle install

oder nur:

gem install nokogiri -v 1.6.8.1 -- --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2
Julian Popov
quelle
9
Die Antwort von NDan ist einfacher
Sanjay
Danke, sehr hilfreich
pkrawat1
Bei neuen Versionen von Mac OS muss Xcode aktualisiert werden, wodurch die Befehlszeilentools ungültig werden und neu installiert werden müssen. Nokogiri wird mit einer eigenen Version von libxml2 gebündelt, die auf vielen Systemen hilft, aber manchmal muss gem gesagt werden, wo man Dinge findet. gem wird tatsächlich das Richtige tun, sobald Xcode aktualisiert wird.
der Blechmann
+1 Großartig! Es funktioniert auch, wenn Sie XCode 9.x haben. Hier müssen Sie die Befehlszeilentools nicht aktualisieren. Wenn nicht aktualisiert, öffnen Sie einfach XCode und es wird sich darum kümmern.
Gsscoder
2
Dies funktionierte für mich, während die angeblich einfachere Antwort, die in den Kommentaren erwähnt wurde, nicht
Cpt. Senkfuss
125

Die einfachere Lösung besteht darin, Folgendes auszuführen:

xcode-select --install
gem install nokogiri

Aktualisieren

Für Mojave benutze ich gem install nokogiri -v '1.6.6.2' -- --use-system-libraries

NDan
quelle
2
Das hat bei mir funktioniert. Nach dem Update auf OS Sierra habe ich xcode aktualisiert und dann nokogiri reibungslos installiert.
Enlego
2
Arbeiten im Jahr 2017! Danke 👍
jake
1
Sie müssen entweder xcode öffnen und Updates installieren oder den hier vorgeschlagenen Code ausführen.
t-my
Danke, es muss in der Hölle brennen, aber zumindest wird dies wahrscheinlich das Problem beheben.
Florian Heigl
47

Versuchen Sie zuerst, libxml2 mit Homebrew zu installieren.

brew install libxml2

Dann bei Installation mit Bundle

bundle config build.nokogiri --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
bundle install

Bei direkter Installation mit gem

gem install nokogiri -- --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
Quanlong
quelle
1
Arbeitete auch für mich in High Sierra. Vielen Dank!
Clinton
4
Beeindruckend. Du hast meinen Tag gerettet. Vielen Dank. Ich bin auf High Sierra 10.13.3.
Jagdeep Singh
11

Dies könnte ein Duplikat von Gem sein. Install nokogiri -v '1.6.8.1' schlägt fehl ... Die letzte akzeptierte Antwort, die es zu tun gab:

brew unlink xz; bundle install; brew link xz

Eine erneute Verknüpfung ist xzmöglicherweise nicht erforderlich ... wenn Sie beispielsweise nur diese Abhängigkeit haben the_silver_searcher(die direkt mit der nicht symlinkierten Bibliothek verknüpft ist).

Orangenhain
quelle
11
gem update --system
xcode-select --install
brew unlink xz
gem install nokogiri -v '1.6.8.1'
brew link xz

Wenn das Problem durch die oben genannten Schritte nicht brew doctorbehoben werden kann, werden auch nicht ausgelastete Header-Dateien ausgeführt und bereinigt.

yuяi
quelle
Das hat bei mir funktioniert. Aus irgendeinem Grund würde das Bundle-Update fehlschlagen. Ich musste Nokiaogiri installieren, wie in dieser Antwort vorgeschlagen.
Nick Kanellopoulos
Ich hatte Nokogiri erst vor einigen Monaten installiert, aber die Ruby-Versionen geändert und die Installation von 1.8.0 schlug fehl. Ich konnte es über das nicht verknüpfte xz / gem isntall-Muster (ohne gem-Update oder xcode-Auswahl)
installieren
1

Für Middleman

gem install nokogiri -v '1.8.2' - --use-system-library = true --with-xml2-include = / Anwendungen / Xcode.app / Inhalt / Entwickler / Plattformen / MacOSX.platform / Entwickler / SDKs / MacOSX10.13.sdk / usr / include / libxml2 /

lraboteau
quelle
0

Wenn Sie zuvor nokogiri mit dem Bundler mit bundle config build.nokogiri --use-system-librariesdieser Einstellung installiert haben, ist dieser weiterhin vorhanden. Wenn Sie dann inzwischen Ihr Xcode-Setup gelöst haben (wie als primäre Installationsmethode in der Nokiaogiri-Installation vorgeschlagen), möchten Sie möglicherweise versuchen, dieses Fra aus dem Bundler zu entfernen bundle config --delete build.nokogiriund es erneut zu versuchen bundle install.

Niels Kristian
quelle