wake-up-neo.net

Installieren von Nokogiri unter OSX 10.10 Yosemite

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.

53
gdavis

Ich habe es geschafft, Nokogiri unter Yosemite (OS X 10.10 Preview) zu installieren.

Schritt 1: Installieren Sie Brew

Überspringen Sie dies, wenn das Sud installiert wurde.

Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Schritt 2: Installieren Sie die Braiblibs

brew tap homebrew/dupes
brew install libxml2 libxslt
brew install libiconv

Schritt 3: Laden Sie die Apple Commandline Tools für 10.10 herunter und installieren Sie sie

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. 

Nokogiri installieren

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/
79
activars

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
63
xrage

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

22
Maximus S

Das hat für mich funktioniert:

ARCHFLAGS="-Arch x86_64" gem install nokogiri -v '1.6.0'
18
Tom Coleman

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
7
edx

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/
5
Manas Tungare

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.

5
ramijames
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
3
IM_AG

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
3
Daniel Romero

(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
2
parquar

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]
2
Nakilon

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
1
Torben Jacobsen

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
1
Xeron

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
1
Hew Wolff

Wenn ich zu Xcode 5 wechsle, anstatt das CLI-Tool von Xcode 6 zu verwenden:

Sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
0
alexzg

Ich denke, das Problem hängt damit zusammen, dass das System Ruby nicht gefunden wird oder mehrere Rubies installiert sind.

  • Verwenden Sie RVM zum Verwalten von Rubinen?
  • Was ist die Ausgabe von 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.

0
frishi

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

Quelle

0
0bserver07

Installieren Sie den vollständigen Xcode. Es war das einzige, was bei alten Nokogiri-Versionen für mich funktionierte.

0
marano

Versuch's einfach:

xcode-select --install
0
leoyamasaki

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

Referenz: https://www.bountysource.com/issues/28085261-can-t-write-usr-bin-nokogiri-while-installing-on-mac-os-ei-capitan

0
vivia

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 

0
Ivan Lin