brew upgrade quebrou o Vim no OS X (dyld: Library not loaded)

36

Eu não corri brew update && brew upgrade por um longo tempo.

Eu apenas fiz uma atualização massiva que acabou quebrando meu Vim.

Isso é o que recebi depois de executar 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

Eu encontrei alguns sites, mas nenhum deles foi realmente útil.

Eles disseram que isso pode estar relacionado a rvm , mas brew uninstall vim; rvm system; brew install vim não ajudou. Tentei reinstalar meu MacVim também, mas isso não resolveu o problema.

Adicionar export PATH="/usr/local/bin:$PATH" ao meu .bash_profile também não ajudou.

Veja a lista para referência futura:

O que aconteceu com o meu Vim? Como posso consertar isso?

    
por Mateusz Piotrowski 03.07.2016 / 18:55

9 respostas

24

tl; dr

brew link --overwrite ruby

Detalhes

Na verdade, acabou sendo bem simples. Eu segui a sugestão para executar brew doctor e obtive estes resultados:

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

Então eu corri brew link ruby . Isso é o que eu consegui:

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'

Como resultado, decidi executar brew link --overwrite ruby e agora meu Vim está funcionando novamente!

    
por 03.07.2016 / 18:55
35

Solução

Tente reinstalar ruby e vim , por exemplo

brew reinstall ruby vim

Resolução de problemas

Aqui estão outras sugestões, se acima, não ajudarão:

  • Encontre referências a DYLD_LIBRARY_PATH , DYLD_FALLBACK_LIBRARY_PATH ou DYLD_FRAMEWORK_PATH variáveis ambientais e remova-as dos scripts de shell de inicialização (por exemplo, ~/.bashrc , ~/.bash_profile , etc.).
por 25.11.2016 / 20:33
5

Ocorreu um erro semelhante ao fazer brew upgrade , onde a libperl não é carregada.

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

A correção foi reinstalar a dependência quebrada e o vim:

brew uninstall --ignore-dependencies perl
brew uninstall vim
brew install vim
    
por 13.07.2017 / 01:25
4

Para mim, descobri que o brew de alguma forma instalava o macvim e ficava em conflito com o estoque do sistema operacional vim. Tenta usar o vim regular e executar comandos git, como esses, produziu erros:

$ 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.

Então eu fui em frente e desinstalei todos os pacotes relacionados ao vim que o brew tinha instalado:

$ brew list

E a remoção do macvim com $ brew uninstall macvim resolveu o problema

    
por 30.11.2017 / 22:20
1

Eu tentei reinstalar, reconectar, remover todas as versões disponíveis, etc., para ruby e vim, mas nada realmente ajudou.

Assim, eu decidi renomear meu arquivo dylib de

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

para

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

O resultado dessa renomeação é que ela funciona perfeitamente bem agora.

    
por 31.05.2017 / 12:35
0

Se você receber uma mensagem como esta:

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.

e você gerencia seu Ruby usando o rvm, então definir corretamente uma variável de ambiente deve colocar seu vim de volta em ação.

Siga estas etapas para ver se isso se aplica ao seu ambiente:

O DYLD_LIBRARY_PATH está definido e está correto?:

$ env|grep DYLD_LIBRARY_PATH

Onde o Ruby está instalado?

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

Isso mostra que meu rubi é gerenciado pelo rvm.

Onde está localizado o libruby.2.4.1.dylib?

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

Adicione o diretório "lib" e anexe-o ao seu arquivo de inicialização:

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

Nota: Use qualquer arquivo de inicialização (~ / .profile, ~ / bash_exports, etc.) que faça sentido para sua estação de trabalho.

Agora, quando você inicia uma nova sessão de terminal, seu vim deve estar funcionando novamente.

    
por 07.08.2017 / 22:17
0

No meu caso, verifica-se que o ruby foi instalado, mas por razões não ligadas, por isso:

brew link ruby

    
por 25.10.2017 / 09:01
0

Parei de usar o Homebrew por causa de todos os problemas e questões de segurança.

De qualquer forma, atualizei de OSX Yosemite para OSX High Sierra e o macvim parou de funcionar no Terminal. Eu recebi o erro:

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

Eu tentei EXPORTAR um caminho como na resposta do I3x, mas eu ainda recebi o mesmo erro (sim, eu abri uma nova janela do Terminal).

Então baixei o macvim novamente. Quando me disseram que já havia um MacVim.app no meu computador, parei a instalação e mudei o nome para MacVim_original.app. Então eu prossigo para instalar um novo macvim. Depois disso, macvim trabalhou no Terminal novamente. Eu inicio com um comando de atalho:

$ m 1.py 
    
por 30.11.2017 / 06:38
-1
brew uninstall --force ruby perl vim && brew install vim 

Isso é o que funcionou para mim.

    
por 15.05.2018 / 21:34