2014-12-16 24 views
12

Sto lavorando a un'app per rotaie che consente l'uso di allegati di immagini per ogni account. Sto usando Paperclip e Amazon Web Services:Impossibile installare la gemma Nokogiri

gem 'paperclip' 
gem 'aws-sdk' 

quando corro bundle install, ottengo questo messaggio:

extconf non è riuscita, il codice di uscita 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. 

Quando provo correre ' gem install nokogiri', ottengo questo messaggio:

extconf non è riuscita, il codice di uscita 1

012.389.752.247.

Il mio sistema operativo è Mac OS X 10.9.4 Mavericks. Cosa sta succedendo qui? Come posso ottenere nokogiri per l'installazione e il comportamento corretto?

completa analisi dello stack:

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 

risposta

28

Questo funziona come un fascino!

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! Mi dispiace, ho cancellato la domanda in quanto contrassegnata come chiusa.La tua risposta è bellissima! Esso funziona magicamente! Grazie mille! :) –

+0

Felice di aver aiutato, Katie. (Eliminerò anche questo commento) –

+0

Bello !! Ha funzionato come il fascino – KrishCdbry

7

Hai provato gem install nokogiri -v 1.6.5 -- --use-system-libraries maggior parte degli errori Nokogiri sono a che fare con libxml2, libxslt o libiconv config?.

Nokogiri docs dovrebbe darvi ulteriori istruzioni. Se la soluzione non funziona, potresti voler postare la traccia dello stack completo in modo che altri possano aiutarti di più.

+1

destra, è necessario installare libxml2 :) , esegui 'brew install libxml2' prima di riprovare. Se si ottiene errore con libxslt e libiconv, allora si fa lo stesso – kasperite

+0

Grazie, ho provato questo, ma non ha funzionato, continua a dirmi che il libxml2 è già installato, vedere la mia risposta –

+0

Ho davvero apprezzato l'idea di questo !! :)) –

1

Dal momento che il PO è stato riferimento a bundle install che mi è capitato di usare come bene penso che vale la pena sottolineare la pagina Installing Nokogiri che alla fine ha rivelato la soluzione più elegante (che ha lavorato per me anche su Mac OS X 10.8.5):

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

Ciò indica bundler installare nokogiri come nelle risposte di @kasperite

1

Come per l'installazione nokogiri istruzioni di installazione,

sudo apt-get install zlib1g-dev

risolto il problema per me.

+0

'zlib1g-dev è già la versione più recente. 0 aggiornato, 0 appena installato, 0 da rimuovere e 8 non aggiornato. – nelsonic

+0

Ha funzionato anche per me su Ubuntu 16.04. –

1

pacchetto che ha fatto:

apt-get install libghc-zlib-dev 

altro candidato possibile:

zlib1g-dev il 12.04

giudicano here

3

dopo l'aggiornamento a Rails 4.2.4 (che inculdes Nokogiri 1.6.6.2) su Ubuntu 14.04 (sto usando RVM) avevo bisogno di fare questo:

sudo apt-get install libgmp-dev 

o

sudo apt-get install libgmp3-dev 
+0

Stavo provando così tanto e ho installato quasi tutte le librerie 10 volte. INFINE, "libgmp3-dev" ha funzionato per me. Grazie. – Anuja

0

non ho avuto lo stesso messaggio di errore come te, ma ho voluto notare ciò che ho finalmente trovato come il straordinariamente semplice soluzione per l'installazione di nokogiri su Ubuntu:

scopre il processo di compilazione nokogiri dipende patch.

Run: sudo apt-get install patch

stavo lavorando su una macchina virtuale (una scatola vagabonda, in realtà), che è il motivo per cui non ho già patch installato.

L'errore ho ottenuto (dopo un sacco di altra roba che sembrava un errore, ma in realtà era solo un avvertimento) era:

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. 

Ho cancellato il registro ormai (Quanto sopra è stato nel mio sessione terminale), ma il file patch.log di cui sopra era assurdamente semplice; ha appena detto qualcosa come patch not found.

Boy mi sono sentito stupido per tutti gli scavi che ho fatto installando le librerie che cercavano di risolverlo! :)

0

installare gcc primo

in * buntu: apt-get install gcc

dopo che U può requer la maggior parte delle librerie dev, come ad esempio libxml2/zlib/ecc vedere costruire log (percorso nel mio caso): /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.6.8.1/mkmf.log per stringhe simili - errore fatale: zlib.h: No tale file o directory

2

Ho risolto questo problema installando le dipendenze xcode che Nokogiri deve essere installato:

xcode-select --install 

Dopo l'installazione di questo pacchetto di nuovo, dovrebbe funzionare.

2

Su Ubuntu, provare a installare le seguenti dipendenze:

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

di prendere da dylanjhunt's awesome answer on Github, nel caso in cui qualcuno non ha provato,

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.

Problemi correlati