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?

   

    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