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'
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?
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
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.
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
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.
Premier gem uninstall nokogiri
Second install nokogiri
Troisième terminal de redémarrage
soyez heureux
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