2014-12-16 10 views
12

Ich arbeite an einer Rails-App, die Bildanhänge für jedes Benutzerkonto ermöglicht. Ich verwende Büroklammer und Amazon Web Services:Fehler beim Installieren von Nokogiri gem

gem 'paperclip' 
gem 'aws-sdk' 

Wenn ich Bündel laufen installieren, erhalte ich diese Meldung:

extconf fehlgeschlagen, Exit-Code 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 
An error occurred while installing nokogiri (1.6.5), and Bundler cannot continue. 
Make sure that `gem install nokogiri -v '1.6.5'` succeeds before bundling. 

Wenn ich versuche, laufen ' gem install nokogiri‘, erhalte ich diese Meldung:

extconf fehlgeschlagen, Exit-Code 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 

Mein Betriebssystem ist Mac OS X 10.9.4 Mavericks. Was ist hier los? Wie kann ich Nokogiri installieren und sich korrekt verhalten?

Voll Stack-Trace:

Building native extensions with: '--use-system-libraries' 
This could take a while... 
ERROR: Error installing nokogiri: 
    ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb --use-system-libraries 
checking if the C compiler accepts ... yes 
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... yes 
Building nokogiri using system libraries. 
libxml2 version 2.6.21 or later is required! 
*** 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=/usr/local/rvm/rubies/ruby-2.1.2/bin/ruby 
    --help 
    --clean 
    --use-system-libraries 
    --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-xml2-dir 
    --without-xml2-dir 
    --with-xml2-include 
    --without-xml2-include=${xml2-dir}/include 
    --with-xml2-lib 
    --without-xml2-lib=${xml2-dir}/lib 
    --with-libxml-2.0-config 
    --without-libxml-2.0-config 
    --with-pkg-config 
    --without-pkg-config 
    --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-exslt-dir 
    --without-exslt-dir 
    --with-exslt-include 
    --without-exslt-include=${exslt-dir}/include 
    --with-exslt-lib 
    --without-exslt-lib=${exslt-dir}/lib 
    --with-libexslt-config 
    --without-libexslt-config 

extconf failed, exit code 1 

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 

Antwort

28

Das funktioniert wie ein Charme!

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

https://stackoverflow.com/a/24511149

+0

@CarySwoveland Hey Cary! Es tut mir leid, ich habe die Frage gelöscht, da sie als geschlossen gekennzeichnet war.Deine Antwort ist wunderschön! Es wirkt wie ein Zauber! Vielen Dank soooooooooooooo viel! :) –

+0

Ich bin froh, dass es geholfen hat, Katie. (Ich werde diesen Kommentar auch löschen.) –

+0

Lovely !! Arbeitete wie Charme – KrishCdbry

7

Haben Sie versucht, gem install nokogiri -v 1.6.5 -- --use-system-libraries meisten nokogiri Fehler sind mit libxml2, libxslt oder libiconv Config zu tun?.

Nokogiri docs sollte Ihnen mehr Anweisungen geben. Wenn die Lösung nicht funktioniert, möchten Sie möglicherweise die vollständige Stack-Verfolgung veröffentlichen, damit andere mehr helfen können.

+1

Recht, müssen Sie libxml2 installieren :) , führen Sie 'brew install libxml2' aus und versuchen Sie es erneut. Wenn Sie Fehler mit libxslt und libiconv bekommen, dann machen Sie das gleiche – kasperite

+0

Danke, ich habe das versucht, aber hat nicht funktioniert, es sagt mir immer die Libxml2 ist bereits installiert, siehe meine Antwort –

+0

Ich schätze wirklich, dass Sie sich das ansehen !! :)) –

1

Da die OP bundle install wurde Referenzierung, die ich als gut verwenden passiert Ich denke, es lohnt sich die Installing Nokogiri Seite den Hinweis auf die schließlich die eleganteste Lösung ergab (die auch für mich gearbeitet auf Mac OS X 10.8.5):

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

Dies weist bundler zu installieren nokogiri wie in den Antworten von @kasperite

1

Gemäß der nokogiri Installationsanleitung Installation,

sudo apt-get install zlib1g-dev

löste das Problem für mich.

+0

'zlib1g-dev ist bereits die neueste Version. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.' – nelsonic

+0

Arbeitete für mich auch auf Ubuntu 16.04. –

1

Paket, das es tat:

apt-get install libghc-zlib-dev 

Andere mögliche Kandidaten:

zlib1g-dev auf 12,04

gefunden here

3

nach dem Upgrade 4.2.4 auf Schienen (die Inculdes Nokogiri 1.6.6.2) auf Ubuntu 14.04 (Ich verwende RVM) Ich brauchte, dies zu tun:

sudo apt-get install libgmp-dev 

oder

sudo apt-get install libgmp3-dev 
+0

Ich habe mich so angestrengt und installierte fast alle Bibliotheken 10 Mal. ENDLICH "libgmp3-dev" hat für mich funktioniert. Vielen Dank. – Anuja

0

ich die gleiche Fehlermeldung, wie Sie nicht bekommen, aber ich wollte beachten, was ich endlich gefunden als außerordentlich einfache Lösung für auf Ubuntu Installation nokogiri:

Stellt sich heraus, der nokogiri Erstellungsprozess auf patch abhängt.

Run: sudo apt-get install patch

Ich arbeitete an einer VM (Vagabund Box, tatsächlich), weshalb ich nicht schon haben patch installiert.

Der Fehler Ich habe (nach vielen anderen Sachen, die wie ein Fehler gesucht, aber eigentlich nur eine Warnung) war:

Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2... OK 
Running patch with /var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch... 
Running 'patch' for libxml2 2.9.2... ERROR, review '/var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ext/nokogiri/tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2/patch.log' to see what happened. 

ich jetzt das Protokoll gelöscht haben (die oben war in meinem Terminal-Sitzung), aber die oben erwähnte patch.log Datei war absurd einfach; es sagte nur etwas wie patch not found.

Junge fühlte ich mich albern für all das Graben um ich habe die Installation von Bibliotheken versucht, es zu reparieren! :)

0

installieren gcc erste

in * buntu: apt-get install gcc

nach dem U kann die meisten Entwickler Libs Requer, wie libxml2/zlib/usw. log bauen (siehe Pfad in meinem Fall): /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.6.8.1/mkmf.log für Zeichenfolge wie - schwerwiegender Fehler: zlib.h: Nein solche Datei oder Verzeichnis

2

Ich löste dies durch die Installation der xcode Abhängigkeiten, die Nokogiri muss installiert werden:

Danach das Bundle erneut installieren und es sollte funktionieren.

2

auf Ubuntu, versuchen Sie die folgenden Abhängigkeiten installieren:

sudo apt-get install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev 
0

Um von dylanjhunt's awesome answer on Github zu nehmen, nur für den Fall, dass jemand es nicht versucht hat,

Just to add to this, I was having a very similar issue that was resolved by updating dev tools.

xcode-select --install

Hoping someone sees this that had not tried doing this yet and it helps.

Verwandte Themen