Warum fehlt die Installation von Nokogiri auf Mac OS mit libiconv?

Ich habe versucht, Nokogiri unter Mac OS 10.9.3 zu installieren und was auch immer ich versuche, die Installation schlägt am Ende mit der folgenden Fehlermeldung fehl:

$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib' This could take a while... Building nokogiri using packaged libraries. ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib Building nokogiri using packaged libraries. checking for iconv.h... yes checking for iconv_open() in iconv.h... no checking for iconv_open() in -liconv... no checking for libiconv_open() in iconv.h... no checking for libiconv_open() in -liconv... no ----- libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby --help --clean --use-system-libraries --enable-static --disable-static --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --enable-cross-build --disable-cross-build Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection. Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out 

Nachdem Sie eine Menge Hilfe im Web gefunden haben, einschließlich dem Erstellen und Installieren von libxml2 und libxslt mit brew und dem Erstellen von libiconv aus den Quellen (wie in ” Installieren von Nokogiri ” beschrieben), bleibt der Fehler der gleiche.

Beim Versuch, die Installation für Nokogiri auszuführen, scheinen libxml2 und libxslt in Ordnung zu sein, aber nicht libiconv.

Wer weiß, wie man Nokogiri installiert?

Solutions Collecting From Web of "Warum fehlt die Installation von Nokogiri auf Mac OS mit libiconv?"

Ich hatte das gleiche Problem. Leider deckt das ” Installing Nokogiri ” keine Probleme mit Iconv. So habe ich das Problem getriggers.

Installieren Sie zuerst Homebrew , es wird Ihr Leben einfacher machen. Wenn Sie es bereits installiert haben, achten Sie darauf, die neuesten Formeln zu verwenden, indem Sie wie folgt aktualisieren:

 brew update 

Hinweis : Unter OSX 10.9+ müssen Sie möglicherweise xCode-Befehlstools installieren, um die Installation von libiconv zu ermöglichen.

 xcode-select --install 

Installieren Sie dann eine neuere Version von libiconv

 brew install libiconv 

Verknüpfen Sie dann Ihre neuen iconv libs:

 brew link libiconv 

Dann installiere dein Juwel

 gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 

Versuchen Sie, die Systembibliotheken zu verwenden. OSX kommt mit libiconv in neueren Versionen, aber das Standardinstallationsskript scheint ein Problem zu haben

 gem install nokogiri -- --use-system-libraries 

Bearbeiten: Wenn Sie Bundler verwenden, wie von Geoff erwähnt , können Sie Folgendes tun:

 bundle config build.nokogiri --use-system-libraries 

@ Cory Lösung enthält die richtige Antwort, aber die Lösung auf Mavericks ist eigentlich viel einfacher als die Top-Lösung, so dass ich nur mit den notwendigen Schritten umpostse.

Auf Mavericks (OSX 10.9+):

Installieren Sie die Xcode-Befehlszeilenwerkzeuge:

 xcode-select --install 

dann installiere dein Juwel:

 gem install nokogiri 

Ich konnte dieses Problem endlich lösen. Keine der obigen Lösungen hat es vollständig für mich behoben.

Ich habe diesen Fehler erhalten, als ich versucht habe, gem install nokogiri auf OSX Lion 10.7.2 zu gem install nokogiri . Zuallererst maskiert dieser Fehler das wahre Problem, indem er sagt, dass libiconv fehlt, weil Sie den gleichen Fehler erhalten werden, selbst wenn Nokogiri libxslt oder libxml2 nicht finden kann, was in meinem Fall nicht möglich war.

Also folgte ich den statementen auf http://nokogiri.org/tutorials/installing_nokogiri.html unter dem Homebrew-Abschnitt (leicht modifiziert, um eine aktuellere Version von libxml2 zu berücksichtigen):

 brew install libxml2 brew link libxml2 # install libxslt from source wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz tar -zxvf libxslt-1.1.26.tar.gz cd libxslt-1.1.26 ./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8 make sudo make install 

An dieser Stelle folgte ich den statementen auf der Nokogiri Seite und versuchte es

 gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 

Dies ist jedoch immer noch fehlgeschlagen, da beim Erstellen von libxslt aus der Quelle der /include Ordner an einem funkigen Ort installiert wird. Sie müssen also die Ordner lib und include wie lib angeben:

 gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt 

Dies funktionierte immer noch nicht (gleicher libiconv-Fehler), also habe ich versucht, alle drei benötigten Bibliotheken (libxslt, libxml2 und libiconv) anzugeben:

 gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8 

Jetzt habe ich einen anderen Fehler! Es war immer noch ein Fehler, aber zumindest war es anders. Der Erstellungsprozess ist fehlgeschlagen mit:

 in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64 

Uhh, was? Nach vielem Googeln bin ich auf diesen Wunderbeitrag gestoßen: http://www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblzz-dylib-file-isnot-of-required -die Architektur/

Anscheinend wird OSX Lion mit einigen errorshaften Versionen der libz-Bibliothek ( libz.dylib, libz.1.dylib, libz.1.2.4.dylib ) ausgeliefert und sie müssen durch die neuesten Versionen aus dem Xcode SDK ersetzt werden. Der Artikel erklärt es besser als ich kann so den obigen Link für spezifische statementen lesen.

Sobald diese ersetzt wurden, rannte ich

 gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8 

wieder und alles war gut. Ich hoffe, das hilft jemand anderem.

Ich habe der Menge nur meine Stimme hinzugefügt, aber mkmf.log sagte etwas darüber, dass ich keine Symbole für die x86_64-Architektur finden konnte. Ich bin über diese Lösung gestolpert:

 sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries 

Kann nichts für den ursprünglichen Fragesteller lösen, aber das kann jemandem helfen.

Side Note: Nokogiri war meine höchste Barriere für die Verwendung von Ruby-Anwendungen. Jedes Mal, wenn jemand auf eine andere Version angewiesen ist, muss ich herausfinden, wie ich ihn bauen kann. Und mein Problem ist jedes Mal anders.

Ich benutze .. OS X 10.9.4 Homebrew 0.9.4

Hier ist meine Zusammenfassung aus diesem Thread, um Nokogiri erfolgreich zu installieren und fehlende Libiconv zu reparieren.

Installieren Sie Homebrew http://brew.sh/ Oder aktualisieren Sie den neuesten Befehl mit dem folgenden Befehl

 brew update 

Installieren Sie libxml2 libxslt

 brew install libxml2 libxslt 

Verknüpfen Sie beide libxml2 libxslt

 brew link libxml2 libxslt 

Wenn Sie gewarnt werden, –force zu verwenden, verwenden Sie einfach den folgenden Befehl

 brew link --force libxml2 libxslt 

Installieren Sie die xCode-Befehlstools, um die Installation von libiconv zu ermöglichen

 xcode-select --install 

Installieren Sie libiconv

 wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xvfz libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1 make sudo make install 

Letzter Schritt, installiere Nokogiri!

 gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib 

Ich triggerse dies auf Yosemite mit Ruby 2.1.4

  1. Stellen Sie sicher, dass Sie xCode 6.1 installiert haben
  2. xcode-select --install , dann
  3. Im AppStore klicke auf Updates und installiere die neueste Version der Kommandozeilen-Tools (die anscheinend xcode-select --install nicht tut – seufz)
  4. dann funktioniert die bundle install wie gewohnt.

Ich habe auch eine brew install libiconv aber ich bin nicht davon überzeugt, dass Schritt nötig war.

Ich habe viele Dinge ausprobiert, aber nichts hat für mich funktioniert. Dann habe ich endlich die iconv Dokumentation gefunden und es hat meinen Tag gerettet!

Wenn man in der mkmf-Datei nachschaut, scheint es, dass Nokogiri (oder Edelstein, ich weiß nicht) versucht, Abhängigkeiten in / op / local / zu finden. Für mich ist es nicht der richtige Weg, sie zu suchen.

Nokogiri zu zwingen, die Bibliotheken am richtigen Ort zu finden (ich benutze Homebrew), hat mir den Trick gegeben:

 $ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ 

Vielleicht gibt es im Nokogiri etwas zu reparieren …

HTH,

libiconv wurde aus Homebrew 0.9 entfernt. Es wird nun empfohlen, libiconv aus der Quelle zu kompilieren und dann auf die Installation zu verweisen, wenn Sie den nokogiri-Edelstein installieren. Siehe die Installationsanweisungen für Nokogiri unter dem Abschnitt Homebrew 0.9 auf der Nokogiri-Installationsseite

Suchen Sie in der Datei mkmf.log im Build-Verzeichnis des Edelsteins (z. B. /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log). Das hat viel mehr Informationen. In meinem Fall, als ich dies traf, fügte Nokogiri spezifisch / opt / local / lib zum Bibliothekssuchpfad hinzu und GNU Backgammon hatte dort eine inkompatible Libiconv installiert.

Angenommen, Sie haben libxml2 und libxslt mit MacPorts installiert, dann könnte dieser Fehler trotzdem auftreten, weil die Reihenfolge der Include-Pfade und der Linkpfade, die vom Aufruf von have_func (‘iconv_open’, ‘iconv.h’) verwendet werden, nicht übereinstimmt.

Einfache (Patch-) Lösung: lösche libiconv. * In / usr / local / lib

 $ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ 

Wie oben, dies ist die Lösung für Homebrew und die Verwendung von Gem Install (Änderungen anwenden hängt von Ihrer Version ab)

Wenn Sie jedoch die Installation von Gemfile und Bundle verwenden, sollten Sie die Paketkonfiguration vor der Installation anwenden, hier den Code

 $ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 

Auch hier gelten Änderungen abhängig von Ihrer Version

hoffe das wird dir helfen.

Kredit: https://gist.github.com/1344331

Ich hatte ähnliche Probleme mit Mountain Lion. Es stellte sich heraus, dass ich libiconv zuvor über das rvm-Paket installiert hatte und dies für ruby ​​1.9.3 / Mountain Lion / nokogiri nicht mehr notwendig ist.

Nach dem Hinweis von https://rvm.io/packages/ habe ich mein Verzeichnis $ rvm_path / usr gelöscht und Ruby 1.9.3 neu aufgebaut. Danach war die Installation von Nokogiri ein einfacher Schmuckstein. Keine Verwirrung mit brew / macports / manuelle Quelle installiert!

Sie können dies auch auf Mavericks tun:

gem install nokogiri installieren – –use-system-libraries = true –mit-xml2-include = / Programme / Xcode.app / Inhalte / Entwickler / Plattformen / MacOSX.platform / Entwickler / SDKs / MacOSX10.9.sdk / usr / include / libxml2

Stellen Sie sicher, dass Sie xcode installiert haben

Ich habe heute auf OS X 10.10 Yosemite eine Weile mit Nokogiri gekämpft

Meine Umgebung war aus irgendeinem Grund durcheinander.

which bundle und which gem gab mir /usr/bin/bundle und /usr/bin/gem statt ~/.rbenv/shims/gem

Was half, es für mich zu korrigieren, war sudo rm -i /usr/bin/gem /usr/bin/bundle

Danach habe ich: 1. zurück zu meinem Projektverzeichnis gewechselt 2. das abhängige 3. deinstalliert (neu) die abhängigen libs brew install libxml2 libiconv libxslt : habe eine brew install libxml2 libiconv libxslt 4. habe meine ruby ​​Version frisch installiert (mit rbenv) 5. habe gem install bundler 6. und bundle install lief ohne Probleme.

Nokogiri es danach gut.

Als Referenz:

 ╰─% cat .bundle/config --- BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: '1' BUNDLE_JOBS: 4 ╰─% which ruby bundle gem ~/.rbenv/shims/ruby ~/.rbenv/shims/bundle ~/.rbenv/shims/gem 

Sie müssen Ihr Homebrew auf 0,9 aktualisieren

dann folge diesen Schritten

 brew install libxml2 libxslt brew link libxml2 libxslt wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xvfz libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1 make sudo make install sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib 

Sie sollten die Version der Ordnerbibliothek überprüfen.

HOMEBREW BENUTZER

Korrekte Lösung, um dieses Problem zu beheben, wenn Sie Homebrew verwenden:

 xcode-select --install 

Wählen Sie “Get Xcode” aus dem Dialogfeld.

 brew unlink libiconv gem install nokogiri 

Der Schritt xcode-select behebt die Installation von Xcode Installation und Xcode Command Line Utils. Ich habe festgestellt, dass ich /usr/include/iconv.h aufgrund eines Problems mit O / S-Upgrades oder Wiederherstellungen aus Backups nicht hatte. Wenn Sie diese Headerdatei und /usr/lib/libconv.dylib nach dem Ausführen von xcode-select nicht haben, müssen Sie höchstwahrscheinlich Xcode aus dem Anwendungsordner in den Papierkorb ziehen und die Befehlszeilentools für Xcode erneut installieren und dann manuell herunterladen von https://developer.apple.com/downloads/index.action und installieren Sie das.

Dann müssen Sie die Libiconv von Homebrew trennen. Du brauchst das nicht. Und clang wird /usr/local/include/iconv.h über /usr/include/iconv.h aufnehmen und #ivine iconv_open auf libiconv_open setzen, aber dann mit /usr/lib/libiconv.dylib verknüpfen, was libiconv_open nicht hat verursacht, dass die Mkmf-Fehler libiconv finden. Was Sie tun müssen, ist die Verknüpfung von iconv.h zu entfernen, so dass Nokogiri es nicht finden wird.

Dann baue normalerweise Nokogiri.

Für neue Benutzer müssen Sie nur xcode mit xcode-select installieren und nokogiri installieren, aber wenn Sie diese Frage gefunden haben, dann haben Sie vermutlich eine verpfuschte Installation und keine Neuinstallation von Mavericks.

Einige der anderen Antworten hier sind definitiv falsch. Die meisten von ihnen versuchen, libiconv aus Homebrew zu verwenden, was völlig unnötig ist. Die Antworten, brew link libiconv tatsächlich das Problem aus, bei dem Klirr verwirrt wird und versuchen, eine Homebrew-Header-Datei zu lesen und mit den Systembibliotheken zu verknüpfen. Die Antworten, die auf --use-system-libraries hinweisen, sind schlecht, weil Nokogiri mit seinen gebündelten libxml2- und libxslt-Bibliotheken verknüpft werden muss, da andere Versionen dieser Bibliotheken damit nicht kompatibel sind. Die Antworten, die Sie aus Quellen zusammenstellen möchten, sind hoffnungslos übermäßig kompliziert.

TL; DR:

  • Aktualisieren und / oder reparieren Sie Ihre Xcode-Installation
  • Heben Sie die Verknüpfung Ihrer Homebrew-Libiconv auf, da dies nur Probleme verursacht
  • Baue normalerweise Nokogiri

RVM Benutzer

Bei alten RVM-Installationen kann es vorkommen, dass sich in Ihren rvm-Verzeichnissen eine Libiconv versteckt, die mit Ihren Systembibliotheken in Konflikt steht. Weitere Informationen finden Sie unter https://stackoverflow.com/a/11809261/506908 .

MacPorts BENUTZER

Wenn Sie /opt/local/lib/libiconv.dylib haben, fügt nokogiri diesen Pfad zur Liste der Verzeichnisse hinzu, nach denen er sucht, und er findet die Installation von MacPorts ähnlich wie die Homebrew-Libiconv und Konflikte mit den Systembibliotheken. Du kannst es versuchen:

 sudo port uninstall libiconv 

Wenn dies aufgrund von Abhängigkeiten fehlschlägt, können Sie versuchen, direkt mit der MacPorts-Version zu verknüpfen (ungetestet):

 gem install nokogiri -- --with-iconv-dir=/opt/local 

Dieser hat für mich funktioniert

sudo env ARCHFLAGS = “- arch x86_64” gem install installieren nokogiri: 1.6.6.2 – –use-system-libraries –mit-xml = / usr / local / Cellar / libxml2 / 2.9.3 / –mit-iconv- dir = / usr / local / Keller / libiconv / 1.14

Ich bin heute morgen … nach einem Upgrade auf Mavericks hier reingerannt. Wir haben viele Dinge getan. Wenn jedoch jemand dieses Problem hat, sind hier einige Dinge zu versuchen.

Ich habe “xcode-select –install” ausgeführt und dann die Kommandozeilen-Tools installiert (überrascht, dass dies nicht auf dem OS-Ugrade aktualisiert wurde). Ich lief ‘rvm implode’ (ich werde es später wieder aufbauen).

Wir haben zwei Fehlerausgabedateien zusammengestellt:

~ / .vagrant.d / Edelsteine ​​/ Edelsteine ​​/ nokogiri-1.6.3.1 / ext / nokogiri / gem_make.out

~ / .vagrant.d / Edelsteine ​​/ Edelsteine ​​/ nokogiri-1.6.3.1 / ext / nokogiri / tmp / x86_64-Apfel-darwin12.5.0 / ports / libxml2 / 2.8.0 / configure.log

Dies schien darauf hinzudeuten, dass der c-Compiler eine überraschende Einstellung verwendet hatte.

Ich lief ‘env’

Ausgabe enthielt:

 ... CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2 ... CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2 ... 

Diese Dateien existierten nicht im Dateisystem …

Nach all diesen Änderungen Umzug in ein neues Terminal Windows (so war alles frisch). Installation von Vagrant-Berkshelf (die wiederum Nokogiri installiert) hat gut funktioniert.

HINWEIS: Wenn ‘env’ im frischen Fenster ausgeführt wurde, gab es keine Einstellung mehr für CC oder CXX …

Ich war mir nicht sicher, ob dies wichtig war, oder ob die Reihenfolge wichtig war, aber ich versuchte, die Teile neu zu erstellen, die eine Rolle dabei spielten, dies zum Laufen zu bringen.

Laut der Dokumentation vermissen Sie ab OSX 10.9 und Homebrew 9.5+ wahrscheinlich die Entwicklungswerkzeuge.

Nokogiri Installation

Fehlerbehebung

Wenn Sie Probleme haben, libiconv zu erwähnen, das ungefähr so ​​aussieht:

 Installing nokogiri (1.6.2.1) Building nokogiri using packaged libraries. Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb Building nokogiri using packaged libraries. checking for iconv.h... yes checking for iconv_open() in iconv.h... no checking for iconv_open() in -liconv... no checking for libiconv_open() in iconv.h... no checking for libiconv_open() in -liconv... no ----- libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** extconf.rb failed *** 

Dann fehlen Ihnen wahrscheinlich die richtigen Entwicklerwerkzeuge. Dies ist eine wirklich einfache Lösung:

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

Dies wird überprüft, indem auf OSX 10.9 w / xcode Clang-Compiler arbeitet.

Ich habe dieses Problem, als ich mein Mac OS auf Yosemite aktualisiert habe. Ich konnte dieses Problem lösen, indem ich

 xcode-select --install brew uninstall libiconv brew install libiconv gem install nokogiri 

Ich hatte ein ähnliches Problem und die angenommene Antwort pflegte, um für mich zu arbeiten. Nun habe ich jedoch eine neue Fehlermeldung erhalten, bei der ein gmkdir Befehl wie in dieser Frage fehlt:

Gem install nokogiri -v ‘1.5.11’ fehlgeschlagen wegen make: / usr / local / bin / gmkdir: Keine solche Datei oder Verzeichnis

Was für mich funktionierte, war zuerst ein bisschen Aufräumen:

 brew uninstall libiconv brew uninstall libxml2 brew uninstall libxslt 

Und dann brew unlink libiconv und was Sie sonst noch benötigen, um die Verbindung aufzuheben ( brew unlink libiconv Sie den brew unlink libiconv ). Dann die magischen zwei Zeilen (kopiert von der verknüpften Antwort):

 brew install coreutils gem install nokogiri 

Vergewissere dich zuerst, dass du der Installationsanleitung auf nokogiri folgst: http://nokogiri.org/tutorials/installing_nokogiri.html

Nachdem ich dem Leitfaden gefolgt war, hatte ich immer noch dieses Problem. So habe ich es getriggers:

Zuerst habe ich iconv mit homebrew installiert: brew install iconv

Dann habe ich Ruby deinstalliert, zum Glück ist das mit rvm sehr einfach:

 rvm uninstall 1.9.2 

Dann musste ich Ruby mit den folgenden Optionen neu installieren:

 CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1 

Dann erstelle ich einen Edelstein mit der neuen Ruby-Version:

 rvm use 1.9.2@coolproject 

Dann kann ich nokogiri endlich so installieren:

 gem install nokogiri -v=1.4.4 -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 

In meinem Fall (wie bei scotchi) ist der Build wegen einer inkompatiblen iconv Bibliothek in / opt / local / lib fehlgeschlagen. Der Build-process von Nokogiri sucht standardmäßig zuerst nach / opt / local. Um es zu zwingen, ein anderes Installationsverzeichnis zu verwenden, zum Beispiel / usr / local, tun Sie Folgendes:

 gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include 

Dieser Blogpost schlägt vor, libiconv manuell zu installieren.

Anschließend kann Nokogiri mit einer Reihe von Schaltern installiert werden, die angeben, wo libiconv zu finden ist (siehe Blogpost).

Als Randnotiz: Nachdem ich Nokogiri installiert hatte, konnte ich Gollum installieren (Installation fehlgeschlagen, da Iconv nicht gefunden werden konnte). Jetzt habe ich aber immer noch Probleme, denn wenn ich Gollum starte, stürzt Python ab.

 $ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247 $ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so* 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so* $ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so* 

HINWEIS: Die fehlende /lib/iconv/iconv.so-Datei in 2.0.0-p247, die in der 2.0.0-p0-Gems-Installation vorhanden ist.

 $ rbenv version 2.0.0-p247 (set by /home/XXX/tmp/.ruby-version) $ rbenv which gem /home/XXX/.rbenv/versions/2.0.0-p247/bin/gem $ gem --version 1.8.25 $ rbenv which pry /home/XXX/.rbenv/versions/2.0.0-p247/bin/pry $ pry [1] pry(main)> require 'iconv' LoadError: cannot load such file -- iconv/iconv.so from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 

Kopieren Sie die Datei über

 $ pushd ~/.rbenv/versions/ $ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/ 

JETZT FUNKTIONIERT ES!

 $ pry [1] pry(main)> require 'iconv' => true 

Ich musste zuerst gcc installieren, bevor ich ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1

Ich folgte den statementen von der Nokogiri-Installationsseite und installierte xcode-Tools. Aber es funktionierte immer noch nicht für mich.

Dann habe ich gesehen, dass der Befehl brew install libxml2 libxslt folgendes (neben anderen Dingen) ausgibt:

 To allow the nokogiri gem to link against this libxslt run: gem install nokogiri -- --with-xslt-dir=/usr/local/opt/libxslt 

Also, ich renne das und Nokogiri wurde erfolgreich installiert.

Das funktioniert für mich:

 gem install nokogiri -- --use-system-libraries 

Wenn Sie Bundler verwenden, teilen Sie ihm mit, die Option zu verwenden:

 bundle config build.nokogiri --use-system-libraries bundle install 

ref