2012-06-13 6 views
7

Ho provato ad installare Nokogiri sul mio sistema Ubuntu 12.04, e ho ricevuto un errore che diceva "libxslt is missing", ma sono installati i modelli libxslt-dev e libxml2-dev.Che cos'è un processo di installazione affidabile per Nokogiri (su Ubuntu)?

Esiste un processo di installazione affidabile? Come posso controllare i collegamenti alle librerie dipendenti?

Ho usato RVM e anche il pkg RVM è installato.

ERROR: Error installing nokogiri: 
    ERROR: Failed to build gem native extension. 

     /home/victor/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb 
checking for libxml/parser.h... yes 
checking for libxslt/xslt.h... yes 
checking for libexslt/exslt.h... yes 
checking for iconv_open() in iconv.h... yes 
checking for xmlParseDoc() in -lxml2... yes 
checking for xsltParseStylesheetDoc() in -lxslt... no 
----- 
libxslt is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. 
----- 
*** 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=/home/victor/.rvm/rubies/ruby-1.9.3-p125/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 
    --with-xml2lib 
    --without-xml2lib 
    --with-xsltlib 
    --without-xsltlib 


Gem files will remain installed in /home/victor/.rvm/gems/[email protected]/gems/nokogiri-1.5.4 for inspection. 
Results logged to /home/victor/.rvm/gems/[email protected]/gems/nokogiri-1.5.4/ext/nokogiri/gem_make.out 
    enter code here 
+0

Se sono installate le librerie 'libxslt', probabilmente avete per specificare il percorso. –

+0

prova a installare 'libxml2 libxml2-dev libxslt1-dev'? –

+0

VanDarg e il percorso? – Reader

risposta

7

ho anche sperimentato lo stesso problema con rvm, anche se avevo fatto la seguente, come da documentazione:

  • sudo apt-get install libxslt-dev libxml2-dev
  • rvm pkg libxml2 e rvm pkg libxslt

L'unico modo che ho potuto questo è stato risolto dopo una lunga indagine:

  • Disinstallare l'installazione rubino: rvm remove 1.9.3
  • Elimina tutti libxslt* e libxml2* librerie da ~/.rvm/usr/lib se si era in precedenza fatto rvm pkg ...
  • Reinstallare rubino: rvm install 1.9.3

reinstallazione dopo i comandi apt-get sembra essere l'unica modo di farlo funzionare. Inoltre, assicurarsi che le librerie installate con rvm pkg non interferiscano con l'aiuto.

Quando tutto il resto fallisce ...

Se tutto il resto non riesce e si assolutamente bisogno la gemma installato, si può anche ricostruire nokogiri applicando una semplice patch - a condizione che siano presenti tutti costruire strumenti installati, e con l'avvertenza che questo installerà il codice più recente e potenzialmente instabile:

  • git clone git://github.com/sparklemotion/nokogiri
  • get cerotto from this gist e salvarlo come x86_64.patch nella cartella nokogiri.
  • applicare la patch: patch -p1 < x86_64.patch
  • Ricostruire: rake native gem - questo dovrebbe costruire la gemma nella cartella di pkg/
  • Installare la gemma usando gem install pkg/nokogiri-<version>-x86_64-linux.gem
+0

Questo in realtà mi ha aiutato a risolvere un errore durante l'installazione di chef tramite gem su Ubuntu 12.04 utilizzando solo pacchetti: non volevo utilizzare RVM come solo 1.9.3 è necessario in tutto il sistema su questa scatola. Grazie! –

-1
sudo apt-get install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 
sudo apt-get install libreadline-ruby1.8 libruby1.8 libopenssl-ruby 
sudo apt-get install libxslt-dev libxml2-dev 

?

+4

Avevo già installato tutto e ho ancora lo stesso errore – Reader

0

Sono abbastanza nuovo al rubino, ma questo ...

gem install nokogiri -v '1.5.2' -- --with-xml2-lib=/usr/lib/i386-linux-gnu --with-xml2-include=/usr/include/libxml2 --with-xslt-lib=/usr/lib/i386-linux-gnu --with-xslt-include=/usr/include/libxslt 

... ha lavorato per me su Ubuntu 12.04. (O comunque, ha soddisfatto la dipendenza da nokogiri e mi ha fatto un passo in avanti verso quello che sto cercando di realizzare.) Pensavo che avrebbe potuto incasinare la mia magia RVM, ma nokogirl-1.5.2 è sicuramente seduto lì in ~ /.rvm/ruby-1.9.3-p194/gems, quindi ... forse va tutto bene?

+0

in genere con domande non specifiche come questa, aiuta il richiedente (e i futuri utenti) a fornire solide soluzioni che sono agnostiche al sistema/configurazione, o per istruire su come analizzare e correggere una parte specifica del processo che può causare errori (collegamento della libreria, ad esempio) –

0

ho avuto questo problema su Ubuntu 13.04.

Avevo provato tutto ciò che trovate dappertutto online. Sono presenti i pacchetti elencati nella pagina di installazione di Nokogiri, ecc.

L'unica cosa che alla fine ha fatto per me è stata l'installazione di libsxlt dal sorgente. Dopo che tutto ha funzionato perfettamente.

0

ho dovuto usare gem install nokogiri - --with-iconv-dir =/usr/lib/ruby ​​/ 1.9.1/x86_64-linux

Problemi correlati