Ich habe kürzlich ein Upgrade auf die 10.10 Yosemite-Beta durchgeführt, aber ich habe Probleme, Nokogiri zu installieren. Ich verwende RVM und Ruby 1.9.3. Ich habe auch die Schritte hier befolgt und die Anweisungen auf der Nokogiri-Homepage befolgt.
Ich habe libxml2 (2.9.1) und libxslt (1.1.28) über Homebrew installiert und versucht, die Befehlszeilentools von sowohl Xcode 5 als auch Xcode 6 zu verwenden.
gem install nokogiri -v '1.5.5'
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/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/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/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/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:506:in `try_cpp'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:970:in `block in find_header'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:284:in `block in postpone'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:280:in `postpone'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:789:in `checking_for'
from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:969:in `find_header'
from extconf.rb:114:in `<main>'
Hat jemand eine Idee, wie diese Installationsfehler behoben werden können?
EDIT 6/10/14: Nachdem ich einige Tage versucht hatte, Nokogiri unter OSX 10.10 zu installieren, brach ich die Aufgabe ab und stellte 10.9 auf meinem Rechner wieder her. Mehrere Bibliotheken und Bundles müssen aktualisiert werden, um in der 10.10-Umgebung arbeiten zu können.
Ich habe es geschafft, Nokogiri unter Yosemite (OS X 10.10 Preview) zu installieren.
Überspringen Sie dies, wenn das Sud installiert wurde.
Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap homebrew/dupes
brew install libxml2 libxslt
brew install libiconv
Es ist wichtig, dass Sie nach der Installation einen Neustart durchführen müssen.
Link: command_line_tools_for_osx_10_10_june_2014.dmg
Nach dem Neustart können Sie die Installation in Terminal überprüfen:
> xcode-select --install
-> xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Dieser Fehler bedeutet, dass Sie das Befehlszeilentool ordnungsgemäß installiert haben.
Versuchen Sie es mit n der vorherigen Version 1.6.1 in Ihrer Gemfile-Version 1.6.2.1, die derzeit Probleme mit "10.10 Preview" hat. Es funktioniert nur mit meinem Ruby 2.0.0p247, dessen Installation unter 2.1.1 fehlgeschlagen ist. Sie können Ihre vorhandenen Ruby-Versionen ein paar Mal ausprobieren.
gem install nokogiri -v '1.6.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/
libxml2 - 1.6.6.2 in Yosemite:
Sudo env ARCHFLAGS="-Arch x86_64" gem install nokogiri -- --use-system-libraries -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include
Für Mac OS El Capitan:
gem install nokogiri -v '1.6.7.1' -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2
Das hat für mich funktioniert:
ARCHFLAGS="-Arch x86_64" gem install nokogiri -v '1.6.0'
Ich hatte das gleiche Problem mit MacPorts Ruby2.1:
can not gem install nokogiri on osx10.10 with macports Ruby2.1
Die Installation wird gestartet, die CPU geht bei einem einzelnen Kern bei 100% auf 50%, dann fällt die CPU auf nahezu Null, aber iostat tps
geht durch die Wand.
Das hat geholfen:
# port install libiconv libxslt libxml2
# gem install nokogiri -- --use-system-libraries --with-iconv-dir=/opt/local --with-xml2-dir=/opt/local --with-xslt-dir=/opt/local
Das hat endlich für mich funktioniert:
Sudo gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
Für alle anderen, die es nicht geschafft haben, auf El Capitan zu funktionieren, war es für mich schließlich so:
Sudo gem install nokogiri -- --use-system-libraries --with-xslt-dir=/usr/local/opt/libxslt --with-iconv-dir=/usr/local/opt/libiconv --with-xml2-dir=/usr/local/opt/libxml2 --with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xml2-include=/usr/local/opt/libxml2/include/libxml2 --with-xslt-config=/usr/local/opt/libxslt/bin/xslt-config
Ich habe keine Macports installiert und mein System ist ein seltsamer Hodge-Podge. Das Erzwingen bestimmter Installationen für jede Abhängigkeit ist die einzige Möglichkeit, Nokogiri zum Kompilieren zu bringen. Super nervig, aber zumindest klappt es.
Sudo gem update --system
Sudo gem install nokogiri -v '1.6.6.2' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
Die Anweisungen von der Nokogiri-Website funktionierten für mich sowohl unter OSX 10.9 als auch 10.10.
brew unlink gcc-4.2 # you might not need this step
gem uninstall nokogiri
xcode-select --install
gem install nokogiri
(vollständige Antwort hier https://Gist.github.com/chrisb/4d6a09c6cc1ca2e1b14d )
Es scheint, dass Homebrew irgendwie von Ruby ab Version 1.8 abhängt (obwohl auch Mavericks mit 2.0 ausgeliefert wird). Bis Homebrew dies anspricht, verknüpfen wir unsere Systemversion von Ruby mit der, nach der Homebrew sucht.
Erstellen Sie den Ordner:
Sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin
Dann symlink die binäre:
Sudo ln -s /usr/bin/Ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby
Das hat für mich funktioniert:
$ brew install libxml2 libxslt # optional?
$ brew install libiconv # optional?
$ gem install nokogiri -v 1.6.8 -- --use-system-libraries --with-xml2-include=/usr/local/opt/libxml2
auf Umgebung wie diese:
$ sw_vers -productVersion
10.9.4
$ brew -v
Homebrew 0.9.9 (git revision aa747; last commit 2016-05-26)
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.14
- Ruby VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
Ich habe dieselbe Fehlermeldung in OS X Yosemite Version 10.10.5 erhalten
Ich hatte kürzlich verschiedene Betriebssystem-Updates durchgeführt und es stellte sich heraus, dass ich die neue Lizenzvereinbarung mit xcode nur mit folgendem Befehl akzeptieren musste:
Sudo xcodebuild -license
Wenn Sie OS X 10.10 und MacPorts verwenden, müssen Sie auch pkgconfig installieren:
Sudo port install pkgconfig libxml2 libxslt libiconv
Wenn Sie MacPorts-Bibliotheken automatisch verwenden möchten, ohne Konfigurationsoptionen hinzuzufügen, müssen Sie dies Ihrem .profile oder Ihrer .bashrc hinzufügen:
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"
Außerdem möchten Sie Folgendes hinzufügen, um Nokogiri zu sagen, dass es Ihre Systembibliotheken immer verwenden soll:
export NOKOGIRI_USE_SYSTEM_LIBRARIES=Y
Starten Sie das Terminal neu, nachdem Sie alle diese Exporte hinzugefügt haben.
Mit dieser Konfiguration können Sie Nokogiri mit folgendem installieren:
gem install nokogiri
Das einzige, was für mich funktionierte, war ein Upgrade des Compilers von Apple-gcc42 auf gcc48:
brew uninstall Apple-gcc42
brew install gcc48 # this might take an hour or so
rvm implode
\curl -sSL https://get.rvm.io | bash -s stable # reinstall RVM
rvm install Ruby-1.9.3-p551
bundle update libv8 # 3.16.14.3 doesn't work but 3.16.14.7 does
bundle
Wenn ich zu Xcode 5 wechsle, anstatt das CLI-Tool von Xcode 6 zu verwenden:
Sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
Ich denke, das Problem hängt damit zusammen, dass das System Ruby nicht gefunden wird oder mehrere Rubies installiert sind.
Ruby -v
?Dies sollte der Ausgangspunkt sein, um eine Lösung zu finden.
Der bad interpreter
-Fehler hängt mit einem Problem bei der Ruby-Installation zusammen.
Im Idealfall sollten Sie mit dem System Ruby beginnen, das mit Xcode ..__ ausgeliefert wird. Sie müssen Xcode daher vollständig deinstallieren.
http://osxdaily.com/2012/02/20/uninstall-xcode/
Deinstallieren Sie brew
, rvm
und installieren Sie sie erneut.
Das hat funktioniert:
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
Installieren Sie den vollständigen Xcode. Es war das einzige, was bei alten Nokogiri-Versionen für mich funktionierte.
Versuch's einfach:
xcode-select --install
lösen Sie das Problem "Kann nicht schreiben/usr/bin/nokogiri während der Installation unter Mac OS El Capitan" auf Mac os x:
Sudo gem install nokogiri -n /usr/local/bin
In meinem Fall wurde die Fehlermeldung unten und die entsprechende Lösung ebenfalls geschrieben.
Fehlermeldung:
...
libxml2 is missing. Please locate mkmf.log to investigate how it is failing.
...
Lösung:
gem install nokogiri -- --use-system-libraries --with-libxml2lib=/usr/local/opt/libxml2/lib/libxml2.a
Ich habe direkt den Pfad der Bibliothek von libxml2.a angegeben