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

48

Je n'ai pas couru brew update && brew upgradependant 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 couru 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é à, rvmmais brew uninstall vim; rvm system; brew install vimn'a pas aidé. J'ai aussi essayé de réinstaller mon MacVim mais cela n'a pas résolu le problème.

Ajout export PATH="/usr/local/bin:$PATH"à mon .bash_profilen'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?

Mateusz Piotrowski
la source
Maintenant, vous pourriez peut-être essayer: xcode-select --installet ensuite brew upgrade, comme suggéré dans la section Mise à niveau de macOS dans Common Issues
cône

Réponses:

49

Solution

Essayez de réinstaller rubyet vim, par exemple

brew reinstall ruby vim

Dépannage

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

  • Trouver toutes les références à DYLD_LIBRARY_PATH, DYLD_FALLBACK_LIBRARY_PATHou les DYLD_FRAMEWORK_PATHvariables environnementales et les supprimer des scripts shell de démarrage (par exemple ~/.bashrc, ~/.bash_profile, etc.).
Kenorb
la source
3
Vient de passer à la haute sierra et cela a fait le tour! Merci.
e_x_p
1
J'avais le problème avec mac vim, j'ai donc utilisé celui-ci à la place brew reinstall ruby macvimet j'ai travaillé comme un charme :)
Crisoforo Gaspar
6
Après la mise à niveau vers High Sierra, j'ai exécuté brew updateet brew upgrade, qui a mis à niveau de nombreux logiciels vers les versions High Sierra et résolu mon problème.
Maffo
27

tl; dr

brew link --overwrite ruby

Détails

En fait, cela s’est avéré être assez simple. J'ai suivi la suggestion de courir brew doctoret j'ai eu 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

Alors j'ai couru 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 courir brew link --overwrite rubyet maintenant, mon Vim fonctionne à nouveau!

Mateusz Piotrowski
la source
2
Merde, brew upgradeça fait beaucoup de conneries pour moi. Merci beaucoup d’offrir un ensemble d’instructions claires pour résoudre ce problème.
Sukima
N'a pas travaillé pour moi après la mise à niveau vers Catalina:Warning: Refusing to link macOS-provided software: ruby
Cory Klein
7

J'ai rencontré une erreur similaire lorsque brew upgradelibperl 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
Andy
la source
1
Mon erreur était liée à la bibliothèque ruby ​​de l'opération, mais après avoir essayé quelques correctifs de liaison, j'ai découvert qu'il me fallait désinstaller / installer vim. Je venais de mettre à jour le rubis.
Jérôme
J'ai trouvé ces mêmes étapes ici github.com/Homebrew/brew/issues/2356#issuecomment-301830565 et cela a fonctionné.
Gabe
4

Pour ma part, j’ai trouvé que ce brassin avait installé macvim d’une manière ou d’une autre 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.

Alors je suis allé de l'avant et j'ai désinstallé tous les paquetages liés à vim que brew avait installés:

$ brew list

Et supprimer sûrement macvim avec $ brew uninstall macvimrésolu le problème

kip2
la source
C'était aussi mon problème. Très bonne réponse; Merci!
Rotary Dial
1

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.

Ueffes
la source
Vous voudrez peut-être envisager d'utiliser un lien symbolique ici au lieu de renommer le fichier, de sorte que tout ce qui a référencé libruby2.3.dylib ne se casse pas non plus.
Derwent
0

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.

l3x
la source
0

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

lien brassage rubis

Kroe
la source
0

Mon erreur (cela s'est produit après la mise à jour de homebrew):

dyld: la bibliothèque n'a pas été chargée: /usr/local/opt/ruby/lib/libruby.2.6.dylib Référencé depuis: / usr / local / bin / vim Raison: image introuvable [1] 2800 abort vim

Cela a pris une heure de ma vie. Ma solution:

Réinstallez ruby ​​$ brew réinstallez ruby

Commentaires de Homebrew:

ruby ne contient que des fûts, ce qui signifie qu’il n’a pas été lié symboliquement dans / usr / local, car macOS fournit déjà ce logiciel et que l’installation d’une autre version en parallèle peut causer toutes sortes de problèmes.

Si vous devez d'abord avoir Ruby dans votre exécution PATH: echo 'export PATH = "/ usr / local / opt / ruby ​​/ bin: $ PATH"' >> >> / / zshrc

Pour que les compilateurs trouvent Ruby, vous devrez peut-être définir: export LDFLAGS = "- L / usr / local / opt / ruby ​​/ lib" export CPPFLAGS = "- I / usr / local / opt / ruby ​​/ include"

Pour que pkg-config trouve Ruby, vous devrez peut-être définir: export PKG_CONFIG_PATH = "/ usr / local / opt / ruby ​​/ lib / pkgconfig" ==> Résumé /usr/local/Cellar/ruby/2.6.3: 19,372 fichiers , 32.4MB Erreur: impossible de retirer le fût de sauvegarde ruby! Faites-le manuellement: sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

J'ai suivi les instructions de homebrew et enlevé manuellement le fût de sauvegarde ruby

$ sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

Après avoir entré le mot de passe et essayé d'ouvrir à nouveau vim avec

$ vim

Vim s'ouvrit et je souris un peu en repoussant la transpiration frustrée. :)

Pépin
la source
-1

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 Yosemitela OSX High Sierraet MacVim cessé de travailler dans le 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é à nouveau macvim . 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 
7stud
la source
1
Lorsque vous faites des déclarations du type «tous les problèmes et problèmes de sécurité», envisagez d’inclure des liens vers la documentation correspondante. (=
ELLIOTTCABLE
google.com .
7stud
Er. profitez de votre vote vers le bas, alors. Je vous propose simplement une explication de la raison pour laquelle vous en avez reçu une, comme c'est une pratique acceptée (comme de citer vos sources) ici sur Stack Exchange. ¯\_(ツ)_/¯
ELLIOTTCABLE
-1
brew uninstall --force ruby perl vim && brew install vim 

C'est ce qui a fonctionné pour moi.

marque
la source