Fehler beim Installieren von Nokogiri unter OSX 10.9 Maverick?


109

Ich habe mein OSX (Lion) auf Mavericks aktualisiert und kann Nokogiri für meine Projekte nicht installieren.

Ich habe bereits XCode 5.0.1, Command Line Tools (using xcode-select --install) und libxml2 von Homebrew installiert und habe immer noch Probleme.

Der Fehler ist:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** 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
    --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=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib
    --without-xml2-lib=${xml2-dir}/lib
    --with-xslt-dir
    --without-xslt-dir
    --with-xslt-include
    --without-xslt-include=${xslt-dir}/include
    --with-xslt-lib
    --without-xslt-lib=${xslt-dir}/lib
    --with-libxslt-config
    --without-libxslt-config
    --with-pkg-config
    --without-pkg-config
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:116:in `<main>'


Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.

Ich habe libxml2, libxslt und libiconv von Homebrew installiert und die Parameter für die Installation von Nokogiri festgelegt, aber es funktioniert auch nicht.

Ich kann nicht finden, was in meiner Umgebung nicht stimmt. Können Sie mir helfen?



2
Versuchen Sie, xcode zu öffnen und akzeptieren Sie die EULA / Lizenz.
Moander

Antworten:


245

Sie können Nokogiri auch unter Mac OS X 10.9 Mavericks mit vollständiger XCode- Installation installieren, indem Sie:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Aktualisieren

Für diejenigen, die Yosemite verwenden , funktioniert der folgende Befehl:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --use-system-libraries

oder es könnte tatsächlich in Ihrem sein MacOSX10.11.sdk sowieso Ordner befinden (meiner war am 18.09.2015). Selbst wenn Sie noch nicht vollständig mit El Capitan vertraut sind, habe ich kürzlich XCode aktualisiert und Sie müssen möglicherweise das El Capitan SDK verwenden Pfad, der als nächstes folgt:

Aktualisieren

Für diejenigen, die El Capitan verwenden , funktioniert der folgende Befehl:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

Aktualisieren

Für diejenigen, die Sierra verwenden , funktioniert der folgende Befehl:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries

4
Nicht für mich: "libxml2 fehlt. Bitte besuchen Sie nokogiri.org/tutorials/installing_nokogiri.html, um Hilfe bei der Installation von Abhängigkeiten zu erhalten." Immer noch der gleiche Fehler.
Pop-A-Stash

1
Musste --use-System-Bibliotheken hinzufügen. Dann funktionierte es an einer brandneuen Mavericks-Installation mit Xcode 5.1.1 und Brew.
Jmg

11
Musste das hinzufügen --use-system-libraries, um dies zum Laufen zu bringen:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
Maverick

1
Dies ist die einzige, die für mich am 10.10.3 funktionieren würde: sudo gem install nokogiri - --with-iconv-lib = / Anwendungen / Xcode.app / Inhalt / Entwickler / Plattformen / MacOSX.platform / Entwickler / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Anwendungen / Xcode.app / Inhalt / Entwickler / Plattformen / MacOSX.platform / Entwickler / SDKs / MacOSX10.10.sdk / usr / include - with-xml2-include = / Applications / Xcode.app / Inhalt / Entwickler / Plattformen / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-library
Erik Villegas

10
Möglicherweise möchten Sie Ihre Antwort mit dem allgemeineren Befehl aktualisieren, der für alle OS X-Versionen und Xcode-Installationspfade funktionieren soll:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp


20

Ich habe dieses Protokoll gefunden und festgestellt, dass gcc-4.2 nicht gefunden wurde:

package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2

package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2

package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  conftest.c  -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L.  -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib     -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2  -lxml2  -lruby.1.9.1-static  -lpthread -ldl -lobjc  "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

Um dieses Problem zu lösen, habe ich apple-gcc42 mit homebrew installiert brew install apple-gcc42und einen Symlink zu meinem / usr / bin erstellt:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2


Dies hat das Problem für mich nicht gelöst, ich habe immer noch die gleiche Fehlermeldung :(
David Portabella

1
Ich habe rvm und ruby ​​(von Brew) komplett deinstalliert, erneut installiert und es hat funktioniert.
David Portabella

3
Also renne ich einfach brew install apple-gcc42... und funktioniert einfach. Dieser Befehl funktioniert bei Ihnen nicht?
Squiter

4
Ich lief xcode-select --installvor der Brauinstallation und alles funktioniert jetzt.
Quickredfox

1
@ LucyBain Ich erinnere mich wirklich nicht ... aber ich denke, dass die Protokolldatei im selben Verzeichnis wie gem_meake.out war ...
Squiter

15

Wenn Sie Xcode 5.1 ausführen, funktionieren die Befehlszeilentools für nokogiri 1.6.1 nicht. Sie müssen die Tools von Ende Oktober 2013 von Apple herunterladen . Sobald Sie diesen Lauf machen

sudo xcode-select -s /Library/Developer/CommandLineTools/

Um Ihren Computer für die Verwendung der Xcode 5.0.X-Befehlszeilentools einzurichten, führen Sie ihn aus

gem install nokogiri

Wenn Sie Ihre Befehlszeilentools anschließend auf die Version Xcode.app zurücksetzen möchten, führen Sie sie aus

sudo xcode-select -r

Sie können auch das Flag hinzufügen, um unbekannte Befehlszeilenargumente zu ignorieren. Dann sieht die Installation folgendermaßen aus:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri

12

Dies hat bei OSX Mavericks für mich funktioniert:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc

Erstaunlicherweise ist dies das einzige in diesem gesamten Profil, das mir auch geholfen hat. Vielen Dank!
KonstantinK

Das Problem dabei ist, dass die Verwendung sudomit RVM oder rbenv Probleme verursacht, da root nicht weiß, wo die Rubine mit Sandbox leben. Dies wird auf der RVM-Installationsseite behandelt . Das OP verwendet RVM und sudowürde dazu führen, dass Nokogiri in Apples Ruby installiert wird, nicht in dem des Benutzers. Tun Sie dies also nur, wenn Sie sicher sind , dass Sie unter Mac OS in Apples Ruby oder unter einem anderen * nix in Ruby installieren möchten.
der Blechmann

10

Ich bin auf OSX Mavericks und mein Problem stellte sich als schlechte Installation von Ruby heraus.

Also habe ich Ruby mit rvm neu installiert:

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

Ich konnte es dann

gem install nokogiri --no-ri --no-rdoc

Problem gelöst.


Cool. Jetzt, da Sie rvm für Außenseiter verwenden, versuchen Sie, vim zu öffnen. SEGV-Fehler? Schön.
Tim

Ich konnte das Gemset nicht entfernen, da die Ordner nicht leer waren, aber die Neuinstallation des Gemset (obwohl es Fehler gab) tat es! Dies ist das einzige, was für mich funktioniert hat!
Onikoroshi

9

Ich halte mich normalerweise gerne an vom System bereitgestellte Dinge. Das hat bei mir funktioniert:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/

Nachdem ich stundenlang gegoogelt hatte, war das die einzige Lösung, die für mich funktioniert hat, danke! : D
Rogerio Chaves

5

Dieses Problem trat sofort nach der Installation des Mavericks 10.9.5-Updates und des 10.9 Developer Tools-Updates von Apple auf. Ich bin gelaufen xcode-select --install, aber das hat das Problem nicht behoben. Dann öffnete ich XCode, akzeptierte die Eula und beendete XCode. Das hat das Problem behoben.


3

Ich hatte heute dieses Problem bei Maverick. So habe ich das Problem gelöst:

brew update
brew install libiconv
brew link libiconv

Stellen Sie sicher, dass Sie wissen, dass die Version von libiconv in Cellar Mine unten 1.14 war, und installieren Sie sie dann wie folgt:

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

Wenn Sie eine bestimmte Version von nokogiri benötigen, z. B. -v '1.6.2.1', installieren Sie diese wie folgt:

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

Nokogiri wurde erfolgreich installiert!


Hat auch für mich an Yosemite gearbeitet. Keine der obigen Antworten hat es getan.
MattL

3

Dies ist dasselbe wie der Beitrag von @ thomas_witt, funktioniert jedoch unter Mac OS X Sierra:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries

2

Damit die Installation funktioniert, musste ich die Dateipfade im gem installBefehl so ändern , dass sie mit denen auf meinem System übereinstimmen. Ich habe verschiedene Versionen von libxml2 und libiconv und eine etwas andere Dateistruktur. Der Befehl mit meinen Änderungen lautet:

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.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

Ich musste sehr akribisch mit den Dateipfaden umgehen. Ich habe mehrere Versuche gebraucht, um die Befehle korrekt zu konstruieren.
Darkmoves

Hier ist ein Link zu einer anderen Lösung für das Problem einer falschen libxml-Version.
Darkmoves

2

Für Menschen mit MacPorts , stellen Sie sicher , dass Sie installiert haben , libxml2über MacPorts. Geben Sie dann Folgendes ein:

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

Dies sollte den Trick tun, der für mich funktioniert hat, ohne vollständige Pfade zu verwenden.


2

Verwenden brew install libxml2 libxsltSie diese Option, wenn Sie Homebrew verwenden.


2

Hier ist eine weitere Referenz:

system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

Ich habe Fehler bei der Installation von Nokiaogiri

Fehler wie folgt:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)

Sie müssen zuerst die Entwicklungstools installieren.

dann brauche wohl:

$ xcode-select --install

oder wenn du fehler wie hast

checking for libxml/parser.h... no

Ich behebe den lib-Pfad einfach durch:

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

für Bündel brauchen so etwas wie:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install

2

Das funktioniert bei mir

system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1 

Führen Sie einfach zwei Befehle aus

$ xcode-select --install

Sie werden aufgefordert, den Download mit "Ja" durchzuführen. Anschließend werden Sie aufgefordert, die xcode-Komponente zu installieren. Klicken Sie auf "Installieren".

Versuchen Sie nun, gem mit dem folgenden Befehl zu installieren

gem install nokogiri --no-ri --no-rdoc

Dies funktioniert bei mir mit der oben genannten Umgebung.


1

Ich bin auf dasselbe Problem bei Mavrick gestoßen, und die Lösung war:

xcode-select --install

Dies funktioniert jedoch nicht, da auf der Download-Seite von Apple für das Befehlszeilentool das Installationsprogramm derzeit nicht öffentlich verfügbar ist.

Wenn Sie also die Befehlszeilentools für Mavricks haben möchten, benötigen Sie ein kostenpflichtiges Konto . Dann können nur Sie es installieren. Sobald Sie es installiert haben, wird dieses Problem mit Nokogiri nicht mehr auftreten.


Ich habe kein bezahltes Konto und mir wurden die Befehlszeilentools installiert. Ich habe über das Terminal installiert, aber ein Freund von mir hat über diese Download-Seite installiert, und er hat auch kein kostenpflichtiges Konto.
Squiter

Ich stimme mit Ihnen ein. Dasselbe geschah mit mir bis zum 24. November 2013. Wenn Sie jedoch jetzt zu dieser Seite gehen und versuchen, darauf zuzugreifen, wird Ihnen dieser Fehler angezeigt. Das Seltsame ist, dass Sie sich mit Ihren Anmeldeinformationen anmelden, sich aber weiterhin als Gast anmelden. Dies ist die Meldung, die ich auf Seite mit meinem Konto erhalte: Apple Developer Program Große Warnung Wir können Ihre Anfrage nicht bearbeiten. Bitte kehren Sie zur vorherigen Seite zurück oder beenden Sie Ihren Browser und versuchen Sie es erneut. Wenn Sie Hilfe benötigen, wenden Sie sich an den Apple Developer Support.
Shinesecret

1

Ich hatte den gleichen Fehler bei einer Neuinstallation von Mavericks. Nach einem Fehlurteil habe ich mein Xcode-App-Bundle in umbenannt Xcode 5.0.1.app.

Anscheinend zitiert das Nokogiri-Installationsskript seine Pfade nicht und so verursachte der Speicherplatz im Dateinamen alle möglichen Probleme. Erst als ich es versuchte brew install libxml2, wurde der Fehler offensichtlich.

Lektion gelernt: Leerzeichen in Dateinamen sind böse.


1

In meinem Fall musste ich /usr/bin/gcc-4.2 nach dem Symlinking tatsächlich ausführen. Sie müssen die Lizenzvereinbarung akzeptieren, sonst hängt sie.


1

Die Fehlermeldung gibt hier einen Hinweis: The compiler failed to generate an executable file. (RuntimeError)

xcode-select --install # not sure if this is required  
brew install apple-gcc42  
gem install nokogiri  

Möglicherweise müssen Sie auch diese installieren und verknüpfen:

libxml2 libxslt

1
brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
    --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/*

1

Für mich war der Fehler, dass dieser gcc (4.2.1, installiert von Homebrew) sich beschwerte, dass:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

Ich habe das Problem gelöst, indem ich nur x86_64 erzwungen habe:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

Nach dem Upgrade auf Maverick hatte ich ein ähnliches Problem. Ich verwende RVM mit Ruby 1.9.2-p320 und habe verschiedene hier angegebene Lösungen ausprobiert, aber nichts hat das Problem gelöst.

Dann wechselte ich zu Ruby 2.1.2 und bundle installinstallierte sofort Nokogiri.


1

Wenn jemand dieses Problem bei El Capitan hat, während er Bundler verwendet.

Stellen Sie sicher, dass die xcode-Befehlszeilentools installiert sind, und führen Sie Folgendes aus:

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

1

Ich hatte in den letzten zwei Wochen das gleiche Problem, als ich versuchte, eine Rails 3-Versionsanwendung auszuführen.

Das Problem ist, dass Ihr rvm / rbenv den C-Compiler nicht verwendet.

Verwenden Sie diesen Befehl für rvm, um einen kompatiblen C-Compiler zu verwenden

CC=gcc rvm install-version

Wenn Sie also Ruby 1.9.3 verwenden, verwenden Sie es auf diese Weise

CC=gcc rvm install-1.9.3

Verwenden Sie diesen Befehl jedes Mal, wenn Sie die Installation oder etwas anderes nicht bündeln können. Dieses Ding funktioniert auf El Capitan, Rails 3.2.16, Ruby 1.9.3, MySQL 5.7. Hoffentlich wird es das Problem lösen.

Ich hatte in den letzten zwei Wochen das gleiche Problem, als ich versuchte, eine Rails 3-Versionsanwendung auszuführen.

Das Problem ist, dass Ihr rvm / rbenv den C-Compiler nicht verwendet.

Verwenden Sie diesen Befehl für rvm, um einen kompatiblen C-Compiler zu verwenden

CC=gcc rvm install-version

Wenn Sie also Ruby 1.9.3 verwenden, verwenden Sie es auf diese Weise

CC=gcc rvm install-1.9.3

Verwenden Sie diesen Befehl jedes Mal, wenn Sie die Installation oder etwas anderes nicht bündeln können.

Dieses Ding funktioniert auf El Capitan, Rails 3.2.16, Ruby 1.9.3, MySQL 5.7. Hoffentlich wird es das Problem lösen. Und auch wenn Sie bereits den Xcode haben und dann nicht die gleichen Fehler bei der Installation eines Edelsteins auftreten, probieren Sie diese Lösung aus.


1

Ich habe meine Ergebnisse hier hinzugefügt, nachdem ich kurz nach einem Upgrade auf dasselbe Problem gestoßen bin: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

Das Update sind einfach diese 2 Befehle:

xcode-select --install
gem install nokogiri

Ich hoffe es hilft.


5
Bitte poste das Zeug hier - Links können beschädigt werden (siehe Richtlinien)
Justin

Es hat mir geholfen, obwohl ich das Gefühl wiedergebe, die Antwort hier und nicht in einem Link zu veröffentlichen :)
Richard

Dies wird als reine Link-Antwort angesehen, von der beim Stapelüberlauf abgeraten wird. Fassen Sie auch die wichtigen Informationen in Ihrer Antwort zusammen, anstatt nur einen Link zu Ihrer eigenen Website zu veröffentlichen. Auf diese Weise liefert die Antwort weiterhin einen gewissen Wert, wenn der Link verrottet, wie dies normalerweise der Fall ist.
der Blechmann

0

Ich hatte auch dieses Problem. Das Ausführen brew doctorzeigte, dass ich eine unerwartete Version von libiconv in / user / local / lib hatte.

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libcharset.1.dylib
    /usr/local/lib/libiconv.2.dylib

Also entfernte ich sie und baute libxml neu:

rm  /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
🍺  /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

Schließlich habe ich nokogiri installiert:

Jeff$ gem install nokogiri
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed

Ich hatte ein ähnliches Problem (ein nicht verbundenes libiconv). Ich habe die Verknüpfung von libiconv aufgehoben und neu installiert. brauen installieren libiconv, dann gem installieren nokogirl.
Ben

0

Keine dieser Antworten funktionierte für meinen speziellen Fall, und da ich ein Neuling bin, dachte ich, meine Lösung könnte jemand anderem helfen.

Ich benutze Yosemite und habe Ruby 1.9.3p547 verwendet. Es gab eine Sicherheitslücke für p547, daher habe ich versucht, auf Ruby 1.9.3p550 oder höher zu aktualisieren. Ich habe RVM verwendet und dann versucht, meine Edelsteine ​​zu migrieren, und viele von ihnen sind nicht verschwunden. Dann habe ich versucht, die Installation zu bündeln, aber das schlug fehl und ich dachte, es sei ein Konflikt zwischen den verschiedenen Pfaden und Abhängigkeiten, also habe ich die ältere Version von Ruby entfernt. Das hat alles kaputt gemacht.

Ich erhielt immer wieder die Meldung, dass der C-Compiler fehlte, obwohl ich XCode heruntergeladen und kürzlich die CLI-Tools aktualisiert hatte. Ich habe eine andere Website gefunden, auf der ich aufgefordert wurde, ein GCC eines Drittanbieters herunterzuladen, was ich auch getan habe. was alles noch schlimmer machte.

Jetzt erhalte ich die Meldung, dass ich meine Profile und Pfade reparieren muss, da es sonst möglicherweise einfacher ist, OSX neu zu installieren. So tat ich.

Wie auch immer, längere Geschichte nur lang: Die Lösung, die schließlich für mich funktionierte, bestand darin, RVM loszuwerden und einfach Brew zu verwenden, um die Ruby-Version herunterzuladen, die ich damals wollte, bevor sie ausgeführt wurde bundle install. Installieren Sie die richtige Version von Nokogiri FIRST.

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install

Die Verwendung von sudoNokogiri wird in dem einzigen Ruby installiert, der von root bekannt ist. Dies ist höchstwahrscheinlich Apples installierter Ruby, sofern nicht Homebrew verwendet wird. Da das OP RVM verwendete, bedeutet dies, dass Nokogiri von einem von RVM verwalteten Ruby nicht gesehen wird und das Problem nur verschlimmert. Die Verwendung sudohat in diesem Fall möglicherweise funktioniert, sollte jedoch nicht mit einem von RVM oder rbenv verwalteten Ruby versucht werden. RVM sagt ausdrücklich in der Installationsdokumentation , dies nicht zu tun .
der Blechmann

0

Für Windows können Sie auch die lokale Installation ausprobieren:

  1. Laden Sie das entsprechende Juwel herunter, das auf Ihrer Umgebung basiert.

  2. Gehen Sie zu dem Verzeichnis, in dem Sie die Gem-Datei gespeichert haben.

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

Wenn dies nicht funktioniert, können Sie überprüfen, ob Sie zlib und mingw oder einen geeigneten c-Compiler installiert haben.


0

Jedes einzelne verdammte Ding hier hat es nicht für mich getan (ich bin nicht in die Neuinstallation von Brauereien geraten, oy), aber das tat es schließlich (gefunden über einen Fehlerbericht über ein nicht verwandtes Projekt):

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

Viel Glück. Yay für #yakshaving!


-3

Überprüfen Sie die Version Ihrer Commandline-Tools. Richten Sie Ihren Computer für die Verwendung der Xcode 5.0.X-Befehlszeilentools ein und führen Sie dann Folgendes aus:

gem install nokogiri

Sie sollten diesen Befehl verwenden. Terminal öffnen. und Schreiben Sie diesen Befehl. export NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.