web-dev-qa-db-fra.com

Version de bibliothèque incompatible: nokogiri.bundle requiert la version 11.0.0 ou ultérieure, mais libxml2.2.dylib

Je reçois cette erreur en essayant d'exécuter rspec dans le tutoriel de Hartl. J'ai googlé l'erreur, mais ce n'est jamais pour la version spécifique et les correctifs ne résolvent pas réellement mon problème.

/Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247/gems/nokogiri-1.6.0/lib/nokogiri.rb:28:in `require': dlopen(/Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247/gems/nokogiri-           1.6.0/lib/nokogiri/nokogiri.bundle, 9): Library not loaded:    /Users/Jimbo/.bundler/tmp/22862/gems/nokogiri-1.6.0/ports/i686-Apple-   darwin11/libxml2/2.8.0/lib/libxml2.2.dylib (LoadError)
Referenced from: /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247/gems/nokogiri-  1.6.0/lib/nokogiri/nokogiri.bundle
Reason: Incompatible library version: nokogiri.bundle requires version 11.0.0 or later, but libxml2.2.dylib provides version 10.0.0 - /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.bundle
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247/gems/nokogiri-1.6.0/lib/nokogiri.rb:28:in `<top (required)>'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247/gems/capybara-2.1.0/lib/capybara.rb:2:in `require'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247/gems/capybara-2.1.0/lib/capybara.rb:2:in `<top (required)>'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
from /Users/Jimbo/.rvm/gems/Ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
20
user2002730

Je vous suggère tout d'abord de désinstaller Nokogiri en utilisant:

Sudo gem uninstall nokogiri

Ensuite, installez Nokogiri en utilisant rubygems:

gem install nokogiri

Si cela ne fonctionne pas, il y a un problème open sur Nokogiri prenant en charge libxml 2.9.0 et les versions ultérieures. Il y a une branche libxml2-2.9.1 qui a été démarrée en préparation de la prochaine version de libxml2. 

Ensuite, essayez de tirer de cette branche dans votre Gemfile comme ceci:

gem "nokogiri", github: "sparklemotion/nokogiri", branch: "libxml2-2.9.1"

ou installez une ancienne version de libxml2.

Si cela ne fonctionne toujours pas, essayez également les suggestions suivantes: Que faire si libxml2 est un imbécile?

38
Ryan Linton

Pas sûr que ça aide quelqu'un, mais je pourrais juste faire installer nokogiri en utilisant les bibliothèques système 

gem install nokogiri -- --use-system-libraries
4
schmierkov

Votre message d'erreur dit:

nokogiri.bundle nécessite la version 11.0.0 ou ultérieure, mais libxml2.2.dylib fournit la version 10.0.0

Cela me fait penser que votre bijou nécessite une version de libxml plus récente par rapport à votre version système. Comment avez-vous installé libxml2? Si vous avez installé homebrew, vous pouvez essayer de le mettre à niveau avec

brew update
brew upgrade

J'ai pu installer Nokogiri 1.6.0 avec Ruby 2.0.0p247 sous OS X 10.9, puis l'exiger sous IRb. J'ai vérifié deux fois avec Homebrew, et il s’agit bien de keg-only . Cependant, Nokogiri semble installer sa propre version dans gems/nokogiri-1.6.0/ports. Sur ma machine, il se trouve sous x86_64-Apple-darwin13.0.0.

3
Shepmaster

Si vous avez installé Homebrew, essayez ceci. Il résout le problème avec le blocage "Analyse de la documentation pour nokogiri-1.6.1". Cela a fonctionné pour moi.

gem uninstall nokogiri libxml-Ruby

Il vous posera une série de questions sur la quantité de données que vous souhaitez désinstaller, répondez "oui" ou "[y]" à toutes.

brew update
brew uninstall libxml2
brew install libxml2 --with-xml2-config
brew link --force libxml2
brew install libxslt 
brew link --force libxslt 

gem install nokogiri --no-rdoc --no-ri 

Ensuite, dans votre fichier de projet:

bundle install 
3
neuromantix

Réinstaller la gemme n'a pas fonctionné pour moi, ni tirer la branche en particulier. 

Ce n'est pas idéal, mais j'ai constaté que le retour à la version 1.5.9 résolvait le problème.

0
vaughanos

Premier gem uninstall nokogiri Second install nokogiri Troisième terminal de redémarrage 

soyez heureux

0
Fábio BC Souza

Tout d’abord, vérifiez votre version de libxml:

otool -L /usr/lib/libxml2.2.dylib

Il peut revenir

/usr/local/opt/libxml2/lib/libxml2.2.dylib (compatibility version 11.0.0, current version 11.0.0)

ou 

/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0)

Ensuite, vous pouvez essayer de réinstaller libxml pour le mettre à jour:

brew uninstall libxml2 libxslt
brew install libxml2 libxslt

Après cela, essayez de recompiler votre paquet: 

make clean
./configure
make
Sudo make install
0
Paulo Cheque