web-dev-qa-db-fra.com

la mise à niveau de l'infusion a endommagé Vim sous OS X (dyld: la bibliothèque n'est pas chargée)

Je n'ai pas exécuté brew update && brew upgrade depuis longtemps.

Je viens de faire une mise à niveau massive qui s'est avéré être un véritable casse mon Vim.

Voici ce que j'ai obtenu après avoir lancé vim:

dyld: Library not loaded: /usr/local/opt/Ruby/lib/libruby.2.3.0.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
Trace/BPT trap: 5

Je suis tombé sur des sites Web, mais aucun d'entre eux n'a été utile.

Ils ont dit que cela pourrait être lié à rvm mais brew uninstall vim; rvm system; brew install vim n'a pas aidé. J'ai également essayé de réinstaller mon MacVim mais cela n'a pas résolu le problème.

Ajouter export PATH="/usr/local/bin:$PATH" à mon .bash_profile n'a pas aidé non plus.

Voici la liste pour référence future:

Qu'est-il arrivé à mon Vim? Comment puis-je le réparer?

42
Mateusz Piotrowski

tl; dr

brew link --overwrite Ruby

Détails

En fait, cela s’est avéré être assez simple. J'ai suivi la suggestion pour exécuter brew doctor et j'ai obtenu ces résultats:

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
    Ruby

J'ai donc lancé brew link Ruby. C'est ce que j'ai eu:

Linking /usr/local/Cellar/Ruby/2.3.1... v
Error: Could not symlink bin/rake
Target /usr/local/bin/rake
already exists. You may want to remove it:
  rm '/usr/local/bin/rake'

En conséquence, j'ai décidé de lancer brew link --overwrite Ruby et maintenant, mon Vim fonctionne à nouveau!

25
Mateusz Piotrowski

Solution

Essayez de réinstaller Ruby et vim, par exemple.

brew reinstall Ruby vim

Dépannage

Voici d'autres suggestions si ci-dessus ne vous aidera pas:

  • Recherchez les références aux variables d'environnement DYLD_LIBRARY_PATH, DYLD_FALLBACK_LIBRARY_PATH et DYLD_FRAMEWORK_PATH et supprimez-les des scripts de shell de démarrage (par exemple, ~/.bashrc, ~/.bash_profile, etc.).
40
kenorb

J'ai rencontré une erreur similaire en faisant brew upgrade où libperl n'est pas chargé.

dyld: Library not loaded: /usr/local/opt/Perl/lib/Perl5/5.24.1/darwin-thread-multi-2level/CORE/libperl.dylib
  Referenced from: /usr/local/Cellar/vim/8.0.0636/bin/vim
  Reason: image not found

Le correctif était de réinstaller la dépendance cassée et vim:

brew uninstall --ignore-dependencies Perl
brew uninstall vim
brew install vim
6
Andy

Pour ma part, j’ai trouvé que ce brassin avait en quelque sorte installé macvim et qu’il restait en conflit avec le système d’exploitation vim. Les tentatives d'utilisation régulière de vim et l'exécution de commandes git telles que celles-ci génèrent des erreurs:

$ git commit --amend
dyld: Library not loaded: /System/Library/Perl/5.16/darwin-thread-multi-2level/CORE/libperl.dylib
  Referenced from: /usr/local/Cellar/macvim/7.4-73/MacVim.app/Contents/MacOS/Vim
  Reason: image not found
error: vi died of signal 6
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.

Je suis donc allé de l'avant et j'ai désinstallé tous les paquets liés à vim installés par brew:

$ brew list

Et sûrement qu'enlever macvim avec $ brew uninstall macvim résolvait le problème

4
kip2

J'ai essayé de réinstaller, de relier, de supprimer toutes les versions disponibles, etc. pour Ruby et vim, mais rien ne m'a vraiment aidé.

Ainsi, je viens de décider de renommer mon fichier Dylib de

/usr/local/opt/Ruby/lib/libruby.2.3.dylib

à

/usr/local/opt/Ruby/lib/libruby.2.3.0.dylib

Le résultat de ce changement de nom est que cela fonctionne parfaitement bien maintenant.

1
Ueffes

Si vous recevez un message comme celui-ci:

dyld: Library not loaded: /usr/local/opt/Ruby/lib/libruby.2.4.1.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
error: vim died of signal 6
error: There was a problem with the editor 'vim'.
Please supply the message using either -m or -F option.

et vous gérez votre Ruby avec rvm, puis définir correctement une variable d’environnement devrait remettre votre vim en action.

Suivez ces étapes pour voir si cela s'applique à votre environnement:

DYLD_LIBRARY_PATH est-il défini et est-il correct ?:

$ env|grep DYLD_LIBRARY_PATH

Où est installé Ruby?

$ type Ruby
ruby is hashed (/Users/<USER>/.rvm/rubies/Ruby-2.4.1/bin/Ruby)

Cela montre que mon Ruby est géré par RVM.

Où se trouve libruby.2.4.1.dylib?

find /Users/<USER>/.rvm/rubies/Ruby-2.4.1  -name "*.dylib"

Ajoutez le répertoire "lib" et ajoutez-le à votre fichier de démarrage:

echo -e "\nexport DYLD_LIBRARY_PATH=/Users/<USER>/.rvm/rubies/Ruby-2.4.1/lib" >> ~/.bashrc

Remarque: Utilisez le fichier de démarrage de votre choix (~/.profile, ~/bash_exports, etc.) pour votre poste de travail.

Maintenant, lorsque vous démarrez une nouvelle session de terminal, votre vim devrait fonctionner à nouveau.

0
l3x

Dans mon cas, il s'avère que Ruby a été installé, mais pour des raisons non liées, donc:

lien brassage Ruby

0
kroe

J'ai arrêté d'utiliser Homebrew à cause de tous ses problèmes et problèmes de sécurité.

Dans tous les cas, je suis passé de OSX Yosemite à OSX High Sierra et macvim a cessé de fonctionner dans Terminal. J'ai eu l'erreur:

dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
  Referenced from: /Applications/MacVim.app/Contents/MacOS/Vim
  Reason: image not found
Abort trap: 6

J'ai essayé d'exporter un chemin comme dans la réponse d'I3x, mais j'ai toujours la même erreur (oui, j'ai ouvert une nouvelle fenêtre de terminal).

Donc, j'ai téléchargé macvim encore. Quand on m'a dit qu'il y avait déjà un MacVim.app sur mon ordinateur, j'ai arrêté l'installation et j'ai changé le nom pour MacVim_original.app. Ensuite, je procède à l’installation d’un nouveau macvim. Après cela, Macvim a de nouveau travaillé dans Terminal. Je le lance avec une commande de raccourci:

$ m 1.py 
0
7stud