35 votes

erreurs rspec, bibliothèques manquantes après avoir installé homebrew et désinstallé macports

J'ai peut-être fait un pas au-delà de mes connaissances. J'ai installé homebrew et après qu'il ait continué à me donner des avertissements sur le fait que macports était installé, je l'ai désinstallé. Mais maintenant mes tests rspec ne fonctionnent pas.

Voici les erreurs que je reçois.

/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri.rb:13:in \`require': dlopen(/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /opt/local/lib/libiconv.2.dylib (LoadError)
  Referenced from: /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle
  Reason: Incompatible library version: nokogiri.bundle requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 - /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle
.....
.....

J'ai installé libiconv via homebrew mais ça n'a pas réglé le problème. Il se plaint des numéros de version de libiconv ? C'est ça le problème ?

Si quelqu'un pouvait m'expliquer ce qui se passe ici et ce que je dois faire, ce serait très apprécié.

Merci beaucoup. Mark.

83voto

markstewie Points 2207

J'ai réussi à refaire fonctionner les choses pour ceux qui sont intéressés. J'ai enlevé et réinstallé nokogiri gem et tout semble fonctionner à nouveau.

15voto

Nicholas Ren Points 158

En général, ce problème est causé par l'impossibilité de trouver la bonne libiconv . voici comment je résous mon problème : vérifier la sortie de otool -L /usr/lib/libiconv.2.dylib J'ai obtenu le résultat suivant :

/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

puis j'installe libiconv avec homebrew brew install libiconv et montrer où il a été installé brew list libiconv J'ai obtenu le résultat suivant :

/usr/local/Cellar/libiconv/1.14/bin/iconv
/usr/local/Cellar/libiconv/1.14/include/ (3 files)
/usr/local/Cellar/libiconv/1.14/lib/libcharset.1.dylib
/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib
/usr/local/Cellar/libiconv/1.14/lib/ (3 other files)
/usr/local/Cellar/libiconv/1.14/share/doc/ (6 files)
/usr/local/Cellar/libiconv/1.14/share/man/ (6 files)

la libiconv est installée dans /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib . Puis je vérifie la version de la libiconv nouvellement installée, otool -L /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib et j'ai obtenu le résultat suivant :

/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib:
/usr/local/opt/libiconv/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

est correcte, nous devons rendre cette bibliothèque disponible pour ruby. Créer un lien symbolique est une solution rapide :

sudo ln -s /usr/local/opt/libiconv/lib/libiconv.2.dylib /opt/local/lib/libiconv.2.dylib

0voto

jan Points 657

J'ai dû réinstaller libxml-ruby en plus de nokogiri pour que tout fonctionne à nouveau.

0voto

lfender6445 Points 1361

Pour info, j'ai rencontré le même problème et si vous êtes si vous vendez vos gemmes, vous devrez supprimer la gemme incriminée de vendor/ruby. comme une gemme désinstaller + réinstaller n'est pas toujours efficace. Je suppose que Bundler laisse des restes de gemmes et de leurs librairies respectives en cache, même lors d'une nouvelle installation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X