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?
Antworten:
Sie können Nokogiri auch unter Mac OS X 10.9 Mavericks mit vollständiger XCode- Installation installieren, indem Sie:
Aktualisieren
Für diejenigen, die Yosemite verwenden , funktioniert der folgende Befehl:
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:
Aktualisieren
Für diejenigen, die Sierra verwenden , funktioniert der folgende Befehl:
quelle
--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
gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Nachdem ich hier durch die animierten GIFs navigiert war , musste ich einfach
xcode-select --install
und dasgem install nokogiri
funktionierte einwandfrei.quelle
Ich habe dieses Protokoll gefunden und festgestellt, dass gcc-4.2 nicht gefunden wurde:
Um dieses Problem zu lösen, habe ich apple-gcc42 mit homebrew installiert
brew install apple-gcc42
und 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
quelle
brew install apple-gcc42
... und funktioniert einfach. Dieser Befehl funktioniert bei Ihnen nicht?xcode-select --install
vor der Brauinstallation und alles funktioniert jetzt.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
Um Ihren Computer für die Verwendung der Xcode 5.0.X-Befehlszeilentools einzurichten, führen Sie ihn aus
Wenn Sie Ihre Befehlszeilentools anschließend auf die Version Xcode.app zurücksetzen möchten, führen Sie sie aus
Sie können auch das Flag hinzufügen, um unbekannte Befehlszeilenargumente zu ignorieren. Dann sieht die Installation folgendermaßen aus:
quelle
Dies hat bei OSX Mavericks für mich funktioniert:
quelle
sudo
mit 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 undsudo
wü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.Ich bin auf OSX Mavericks und mein Problem stellte sich als schlechte Installation von Ruby heraus.
Also habe ich Ruby mit rvm neu installiert:
Ich konnte es dann
Problem gelöst.
quelle
Ich halte mich normalerweise gerne an vom System bereitgestellte Dinge. Das hat bei mir funktioniert:
quelle
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.quelle
Ich hatte heute dieses Problem bei Maverick. So habe ich das Problem gelöst:
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:
Wenn Sie eine bestimmte Version von nokogiri benötigen, z. B. -v '1.6.2.1', installieren Sie diese wie folgt:
Nokogiri wurde erfolgreich installiert!
quelle
Dies ist dasselbe wie der Beitrag von @ thomas_witt, funktioniert jedoch unter Mac OS X Sierra:
quelle
Damit die Installation funktioniert, musste ich die Dateipfade im
gem install
Befehl 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:quelle
Für Menschen mit MacPorts , stellen Sie sicher , dass Sie installiert haben ,
libxml2
überMacPorts
. Geben Sie dann Folgendes ein:Dies sollte den Trick tun, der für mich funktioniert hat, ohne vollständige Pfade zu verwenden.
quelle
Verwenden
brew install libxml2 libxslt
Sie diese Option, wenn Sie Homebrew verwenden.quelle
Hier ist eine weitere Referenz:
Ich habe Fehler bei der Installation von Nokiaogiri
Fehler wie folgt:
Sie müssen zuerst die Entwicklungstools installieren.
dann brauche wohl:
oder wenn du fehler wie hast
Ich behebe den lib-Pfad einfach durch:
für Bündel brauchen so etwas wie:
quelle
Das funktioniert bei mir
Führen Sie einfach zwei Befehle aus
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
Dies funktioniert bei mir mit der oben genannten Umgebung.
quelle
Ich bin auf dasselbe Problem bei Mavrick gestoßen, und die Lösung war:
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.
quelle
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.
quelle
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.
quelle
Die Fehlermeldung gibt hier einen Hinweis:
The compiler failed to generate an executable file. (RuntimeError)
Möglicherweise müssen Sie auch diese installieren und verknüpfen:
quelle
quelle
Für mich war der Fehler, dass dieser gcc (4.2.1, installiert von Homebrew) sich beschwerte, dass:
Ich habe das Problem gelöst, indem ich nur x86_64 erzwungen habe:
quelle
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 install
installierte sofort Nokogiri.quelle
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:
quelle
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
Wenn Sie also Ruby 1.9.3 verwenden, verwenden Sie es auf diese Weise
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
Wenn Sie also Ruby 1.9.3 verwenden, verwenden Sie es auf diese Weise
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.
quelle
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:
Ich hoffe es hilft.
quelle
Ich hatte auch dieses Problem. Das Ausführen
brew doctor
zeigte, dass ich eine unerwartete Version von libiconv in / user / local / lib hatte.Also entfernte ich sie und baute libxml neu:
Schließlich habe ich nokogiri installiert:
quelle
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.quelle
sudo
Nokogiri 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 Verwendungsudo
hat 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 .Für Windows können Sie auch die lokale Installation ausprobieren:
Laden Sie das entsprechende Juwel herunter, das auf Ihrer Umgebung basiert.
Gehen Sie zu dem Verzeichnis, in dem Sie die Gem-Datei gespeichert haben.
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.
quelle
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):
Viel Glück. Yay für #yakshaving!
quelle
Ü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:
quelle