2011-02-07 9 views
26

Non riesco a capire perché sto ricevendo questo errore da Nokogiri quando avvio Rails. Da quel poco che so, sembra che qualcos'altro stia causando il caricamento di una versione precedente di libxml2, che poi Nokogiri finisce usando, piuttosto che la versione con cui è stato compilato.ATTENZIONE: Nokogiri è stato costruito contro LibXML versione 2.7.7, ma ha caricato in modo dinamico 2.6.16

Cosa devo fare per farlo funzionare senza l'avviso (e con il libxml2 giusto)?

Io corro questo su un MacBook con OS X 10.5.8:

$ rake db:create 
(in /Users/gareth/Sites/Rails3/ngtest) 
WARNING: Nokogiri was built against LibXML version 2.7.7, but has dynamically loaded 2.6.16 
HI. You're using libxml2 version 2.6.16 which is over 4 years old and has 
plenty of bugs. We suggest that for maximum HTML/XML parsing pleasure, you 
upgrade your version of libxml2 and re-install nokogiri. If you like using 
libxml2 version 2.6.16, but don't like this warning, please define the constant 
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri. 

ngtest_test already exists 
ngtest_development already exists 

$ DYLD_PRINT_LIBRARIES=1 rake db:create 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/bin/ruby 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/libruby.1.9.1.dylib 
dyld: loaded: /usr/lib/libSystem.B.dylib 
dyld: loaded: /usr/lib/libobjc.A.dylib 
dyld: loaded: /usr/lib/libgcc_s.1.dylib 
dyld: loaded: /usr/lib/system/libmathCommon.A.dylib 
dyld: loaded: /usr/lib/libauto.dylib 
dyld: loaded: /usr/lib/libstdc++.6.dylib 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/enc/encdb.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/enc/trans/transdb.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/etc.bundle 
(in /Users/gareth/Sites/Rails3/ngtest) 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/stringio.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/syck.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/digest/sha1.bundle 
dyld: loaded: /usr/lib/libcrypto.0.9.7.dylib 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/digest.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/enc/iso_8859_1.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/zlib.bundle 
dyld: loaded: /usr/lib/libz.1.dylib 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/strscan.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/bigdecimal.bundle 
dyld: loaded: /Users/gareth/.rvm/gems/ruby-1.9.2-p136/gems/mysql-2.8.1/lib/mysql_api.bundle 
dyld: loaded: /usr/local/Cellar/mysql/5.1.54/lib/mysql/libmysqlclient.16.dylib 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/openssl.bundle 
dyld: loaded: /usr/lib/libssl.0.9.7.dylib 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/fcntl.bundle 
dyld: loaded: /Users/gareth/.rvm/gems/ruby-1.9.2-p136/gems/eventmachine-0.12.10/lib/rubyeventmachine.bundle 
dyld: loaded: /Users/gareth/.rvm/gems/ruby-1.9.2-p136/gems/thin-1.2.7/lib/thin_parser.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/digest/md5.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/iconv.bundle 
dyld: loaded: /usr/lib/libiconv.2.dylib 
dyld: loaded: /Users/gareth/.rvm/gems/ruby-1.9.2-p136/gems/json-1.4.6/ext/json/ext/json/ext/parser.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/enc/utf_16be.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/enc/utf_16le.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/enc/utf_32be.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/enc/utf_32le.bundle 
dyld: loaded: /Users/gareth/.rvm/gems/ruby-1.9.2-p136/gems/json-1.4.6/ext/json/ext/json/ext/generator.bundle 
dyld: loaded: /Users/gareth/.rvm/gems/ruby-1.9.2-p136/gems/rpeg-markdown-1.4.6/lib/peg_markdown.bundle 
dyld: loaded: /usr/local/Cellar/glib/2.24.2/lib/libglib-2.0.0.dylib 
dyld: loaded: /usr/local/Cellar/gettext/0.17/lib/libintl.8.dylib 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices 
dyld: loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI 
dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices 
dyld: loaded: /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices 
dyld: loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices 
dyld: loaded: /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 
dyld: loaded: /usr/lib/libicucore.A.dylib 
dyld: loaded: /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration 
dyld: loaded: /usr/lib/libbsm.dylib 
dyld: loaded: /System/Library/Frameworks/Security.framework/Versions/A/Security 
dyld: loaded: /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration 
dyld: loaded: /usr/lib/libsqlite3.0.dylib 
dyld: loaded: /usr/lib/libresolv.9.dylib 
dyld: loaded: /usr/lib/libxml2.2.dylib 
dyld: loaded: /usr/lib/libxslt.1.dylib 
dyld: loaded: /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis 
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate 
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage 
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib 
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib 
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib 
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 
dyld: loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib 
dyld: loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib 
dyld: loaded: /usr/lib/libcups.2.dylib 
dyld: loaded: /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos 
dyld: loaded: /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI 
dyld: loaded: /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore 
dyld: loaded: /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv 
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL 
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib 
dyld: loaded: /usr/lib/libffi.dylib 
dyld: loaded: /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo 
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib 
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib 
dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib 
dyld: loaded: /System/Library/PrivateFrameworks/InstallServer.framework/Versions/A/InstallServer 
dyld: loaded: /Users/gareth/.rvm/gems/ruby-1.9.2-p136/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle 
dyld: loaded: /usr/local/Cellar/libxslt/1.1.26/lib/libexslt.0.dylib 
dyld: loaded: /usr/local/Cellar/libxslt/1.1.26/lib/libxslt.1.dylib 
dyld: loaded: /usr/local/Cellar/libxml2/2.7.7/lib/libxml2.2.dylib 
WARNING: Nokogiri was built against LibXML version 2.7.7, but has dynamically loaded 2.6.16 
HI. You're using libxml2 version 2.6.16 which is over 4 years old and has 
plenty of bugs. We suggest that for maximum HTML/XML parsing pleasure, you 
upgrade your version of libxml2 and re-install nokogiri. If you like using 
libxml2 version 2.6.16, but don't like this warning, please define the constant 
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri. 

dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/racc/cparse.bundle 
dyld: loaded: /Users/gareth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/i386-darwin9.8.0/socket.bundle 
ngtest_test already exists 
ngtest_development already exists 

$ nokogiri -v 
--- 
warnings: [] 

nokogiri: 1.4.4 
ruby: 
    version: 1.9.2 
    platform: i386-darwin9.8.0 
    engine: ruby 
libxml: 
    binding: extension 
    compiled: 2.7.7 
    loaded: 2.7.7 
+9

che vince per app più cool nome della costante mai :) 'I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2' – BenGC

+0

@BenGC nokogiri ed i suoi sviluppatori sono pieni di vittoria. –

risposta

33

Alla fine ho dovuto installare la gemma contro la specifica versioni di xml2 e xslt ho installato:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.7/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.7/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 

Il problema era probabilmente la cattiva gestione delle librerie, passando da un gestore di pacchetti all'altro senza essere abbastanza ordinato.

+2

Vuoi aggiungere: Se non hai libxml2 nella directory Cellar su OSX, puoi installarlo usando homebrew, come spiegato nella homepage di Nokogiri: – Houen

+0

Inoltre, se non si desidera utilizzare una versione homebrew specifica, è possibile utilizzare '/ usr/local/opt' a cui homebrew si collegherà. Questo può essere accoppiato con 'bundle config' per assicurare che le librerie giuste vengano usate anche quando si installano versioni con bundler in questo modo:' bundle config build.nokogiri --with-xml2-dir =/usr/local/opt/libxml2' –

0

Ho usato per avere un problema del genere, non si ha realmente bisogno di due versione di libxml sul vostro sistema? Altrimenti, disinstallare tutta la versione precedente di libxml e, nel caso, forzare la reinstallazione di nokogiri.

17

ho avuto un avvertimento diversa:

WARNING: Nokogiri was built against LibXML version 2.7.7, but has dynamically loaded 2.7.8 

ricostruito la gemma con la libreria più recente per sbarazzarsi di avvertimento:

gem install --no-rdoc --no-ri nokogiri -- --with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib 
+0

potrebbe voler correggere l'errore: 'nokigiri' dovrebbe essere' nokogiri' –

+0

Wheeeeee grazie! – flunder

+0

o forse anche 'gem update --no-rdoc --no-ri' se lo hai già installato – cwd

23

Correzione per Nokogiri w. libxml2 2.7.8 carico libxml2 2.7.3

voluto aggiungere alle risposte di cui sopra: Se non avete libxml2 nella directory Cantina su OSX, è possibile installarlo a questo utilizzando homebrew, come spiegato sulla homepage di Nokogiri (homebrew 0.8 o superiore, test con birra -v):

brew install libxml2 libxslt 
brew link libxml2 libxslt 
gem install nokogiri -- --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include 
+2

Solo una nota per aggiungere che brew link libxml2 ha fatto il trucco per me. Mi ha mostrato che i collegamenti simbolici alla gemma nokogiri in Cantina non possono essere creati (problema con le autorizzazioni). Una volta modificata l'autorizzazione per le varie cartelle (poiché ho già installato libxml2 precedente) e il collegamento brew ha avuto esito positivo, l'AVVISO è andato via. – Rupert

3

Nokogiri è stato costruito in modo corretto, ma un altro gioiello è stato richiesto prima e caricato la vecchia libreria libxml2.

Nella tua app, dovresti prima richiedere a nokogiri di forzare l'applicazione a caricare la libreria dinamica libxml2 invece della versione di sistema precedente di libxml2 caricata da gemme che non è riuscita a specificare quale libreria caricare.

5

La soluzione accettata non ha funzionato per me, ma questo ha fatto:

gem install --no-rdoc --no-ri nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib 

Questo compila contro il libreria di sistema MacOS. È possibile che Macports (che preferisco preparare) non sia impostato correttamente sulla mia macchina, comunque.

1

Assicurarsi che non si tratti solo di un problema di compilazione di ruby. Questo è appena uscito su OSX Mountain Lion, dato che il sistema libxml è stato eseguito il bump, ma il ruby ​​è stato compilato sulla libxml precedente. Può essere risolto disinstallando e reinstallando ruby.

La mia risposta su un altro thread di riferimento: https://stackoverflow.com/a/11714789/1561677

+0

Dopo l'aggiornamento a Mountain Lion ho ricevuto questo errore, ma semplicemente reinstallando nokogiri ha funzionato per me –

+0

Dopo l'aggiornamento a Mountain Lion, non è stato possibile reinstallare nokogiri (anche dopo aver reinstallato libxml2). Reinstallare Ruby ha funzionato per me. – lulalala

2

Per Stella Miranda, ho seguito i passaggi per risolvere il mio problema nokogiri su Mountain Lion: installare

  1. gemma di disinstallazione nokogiri
  2. gioiello nokogiri

Nessun avviso nokogiri!

0

Avevo lo stesso problema. Tutto ciò che ho fatto è stato aggiungere una riga nel mio Gemfile per richiedere esplicitamente la versione più recente di nokogiri (al 3/17/2013, 1.5.6), quindi ho fatto il bundle update nokogiri e ho risolto il problema.

Problemi correlati