aktualizacja brew złamała Vima na OS X (dyld: biblioteka nie załadowana)

47

Nie byłem prowadzony brew update && brew upgradeprzez długi czas.

Właśnie dokonałem ogromnej aktualizacji, która okazała się złamać mojego Vima.

Oto, co dostałem po uruchomieniu 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

Natknąłem się na niektóre strony internetowe, ale żadna z nich nie była pomocna.

Powiedzieli, że może to być związane, rvmale brew uninstall vim; rvm system; brew install vimnie pomogło. Próbowałem również ponownie zainstalować MacVima, ale to nie rozwiązało problemu.

Dodanie export PATH="/usr/local/bin:$PATH"do mojego .bash_profileteż nie pomogło.

Oto lista do wykorzystania w przyszłości:

Co się stało z moim Vimem? Jak mogę to naprawić?

Mateusz Piotrowski
źródło
Być może teraz możesz spróbować: xcode-select --installa następnie brew upgrade, zgodnie z sugestią w części Uaktualnianie macOS w najczęstszych problemach
stożek

Odpowiedzi:

48

Rozwiązanie

Spróbuj ponownie zainstalować rubyi vimnp

brew reinstall ruby vim

Rozwiązywanie problemów

Oto inne sugestie, jeśli powyższe nie pomogą:

  • Znaleźć żadnych odniesień do DYLD_LIBRARY_PATH, DYLD_FALLBACK_LIBRARY_PATHlub DYLD_FRAMEWORK_PATHzmienne środowiskowe i usunąć je z skryptach startowych (np ~/.bashrc, ~/.bash_profileitp).
kenorb
źródło
3
Właśnie uaktualniono do wysokiej sierry i to załatwiło sprawę! Dzięki.
e_x_p
1
Miałem problem z Mac Vimem, więc zamiast tego użyłem tego brew reinstall ruby macvimi
działałem
6
Po aktualizacji do wysokiej sierry uruchomiłem brew updatei brew upgrade, która zaktualizowała wiele oprogramowania do wersji wysokiej sierra i naprawiła mój problem.
maffo
27

tl; dr

brew link --overwrite ruby

Detale

W rzeczywistości okazało się to dość proste. Postępowałem zgodnie z sugestią, aby uruchomić brew doctori otrzymałem te wyniki:

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

Więc pobiegłem brew link ruby. Oto co mam:

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'

W rezultacie postanowiłem uruchomić brew link --overwrite rubyi teraz mój Vim znów działa!

Mateusz Piotrowski
źródło
2
Cholera, brew upgraderobi mi to badziewie. Bardzo dziękuję za udostępnienie jasnego zestawu instrukcji, aby to naprawić.
Sukima
7

brew upgradeWystąpił podobny błąd, gdy robię to, gdzie libperl nie jest ładowany.

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

Naprawiono ponowną instalację uszkodzonej zależności i vim:

brew uninstall --ignore-dependencies perl
brew uninstall vim
brew install vim
Andy
źródło
1
Mój błąd był związany z biblioteką ruby ​​w op, ale po wypróbowaniu kilku poprawek linkujących, stwierdziłem, że muszę odinstalować / zainstalować vima. Niedawno zaktualizowałem ruby.
jerome
Znalazłem te same kroki tutaj github.com/Homebrew/brew/issues/2356#issuecomment-301830565 i zadziałało.
gabe
4

Dla mnie znalazłem, że ten browar jakoś zainstalował macvima i nadal pozostawał w konflikcie z vimem systemu operacyjnego. Próby użycia zwykłego vima i uruchamiania takich poleceń git, jak te, spowodowały błędy:

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

Więc poszedłem dalej i odinstalowałem wszystkie pakiety związane z vimem, które zainstalował brew:

$ brew list

I na pewno usunięcie macvim z $ brew uninstall macvimrozwiązanym problemem

kip2
źródło
To też był mój problem. Świetna odpowiedź; dzięki!
rotarydial
1

Próbowałem ponownie zainstalować, ponownie połączyć, usunąć wszystkie dostępne wersje itp. Dla Ruby i Vima, ale tak naprawdę nic nie pomogło.

Dlatego właśnie postanowiłem zmienić nazwę mojego pliku dylib

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

do

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

W wyniku tej zmiany nazwy działa teraz doskonale.

Ueffes
źródło
Możesz rozważyć użycie tutaj dowiązania symbolicznego zamiast zmiany nazwy pliku, aby wszystko, co odnosiło się do pliku libruby2.3.dylib, również nie uległo awarii.
Derwent
0

Jeśli pojawi się następujący komunikat:

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.

i zarządzasz swoim Rubim za pomocą rvm, a następnie prawidłowe ustawienie jednej zmiennej środowiskowej powinno przywrócić działanie vima.

Wykonaj następujące kroki, aby sprawdzić, czy dotyczy to twojego środowiska:

Czy zdefiniowano DYLD_LIBRARY_PATH i czy jest poprawne ?:

$ env|grep DYLD_LIBRARY_PATH

Gdzie jest zainstalowany Ruby?

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

To pokazuje, że moim rubinem zarządza rvm.

Gdzie znajduje się biblioteka libruby.2.4.1.dylib?

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

Dodaj katalog „lib” i dołącz go do pliku startowego:

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

Uwaga: Użyj dowolnego pliku startowego (~ / .profile, ~ / bash_exports itp.), Który ma sens dla twojej stacji roboczej.

Teraz, kiedy zaczynasz nową sesję terminalową, twój vim powinien znów działać.

l3x
źródło
0

W moim przypadku okazało się, że Ruby został zainstalowany, ale z jakiegoś powodu nie jest powiązany, więc:

link parzenia ruby

kroe
źródło
0

Mój błąd (wystąpił po aktualizacji Homebrew):

dyld: Biblioteka nie załadowana: /usr/local/opt/ruby/lib/libruby.2.6.dylib Odwołanie od: / usr / local / bin / vim Przyczyna: nie znaleziono obrazu [1] 2800 przerwać vim

Zajęło to godzinę mojego życia. Moje rozwiązanie:

Ponownie zainstaluj ruby ​​$ brew zainstaluj ponownie ruby

Informacje zwrotne od Homebrew:

Ruby jest przeznaczony tylko dla beczek, co oznacza, że ​​nie został dowiązany symbolicznie do / usr / local, ponieważ macOS już udostępnia to oprogramowanie, a równoległe instalowanie innej wersji może powodować różnego rodzaju problemy.

Jeśli potrzebujesz najpierw ruby ​​w swoim przebiegu PATH: echo 'export PATH = "/ usr / local / opt / ruby ​​/ bin: $ PATH"' >> ~ / .zshrc

Aby kompilatory mogły znaleźć ruby, może być konieczne ustawienie: eksportuj LDFLAGS = "- L / usr / local / opt / ruby ​​/ lib" eksport CPPFLAGS = "- I / usr / local / opt / ruby ​​/ include"

Aby pkg-config znalazł ruby, może być konieczne ustawienie: eksport plików PKG_CONFIG_PATH = "/ usr / local / opt / ruby ​​/ lib / pkgconfig" ==> Podsumowanie us /usr/local/Cellar/ruby/2.6.3: 19,372 plików , 32,4 MB Błąd: Nie można usunąć ruby ​​kopii zapasowej beczki! Zrób to ręcznie: sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

Postępowałem zgodnie z instrukcjami Homebrew i ręcznie usunąłem rubinową kopię zapasową beczki

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

Po wprowadzeniu hasła i ponownym uruchomieniu vima za pomocą

$ vim

Vim się otworzył, a ja uśmiechnąłem się lekko i otarłem frustrację z potu. :)

Pypeć
źródło
-1

Przestałem używać Homebrew z powodu wszystkich jego problemów i problemów związanych z bezpieczeństwem.

W każdym razie, ja uaktualniony OSX Yosemitedo OSX High Sierrai macvim przestał działać w Terminalu. Dostałem błąd:

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

Próbowałem EKSPORTOWAĆ ścieżkę jak w odpowiedzi I3x, ale wciąż otrzymałem ten sam błąd (tak, otworzyłem nowe okno Terminalu).

Więc ściągnąłem macvim ponownie. Kiedy powiedziano mi, że na moim komputerze jest już MacVim.app, zatrzymałem instalację i zmieniłem nazwę na MacVim_original.app. Następnie przystępuję do instalacji nowego macvima. Następnie macvim znów pracował w Terminalu. Uruchamiam go za pomocą skrótu:

$ m 1.py 
7stud
źródło
1
Dokonując takich stwierdzeń, jak „wszystkie problemy i kwestie bezpieczeństwa”, należy uwzględnić łącza do ich dokumentacji. (=
ELLIOTTCABLE,
google.com .
7stud
Er. ciesz się zatem swoją opinią. Po prostu oferuję wyjaśnienie, dlaczego go masz, podobnie jak przyjęta praktyka (podobnie jak cytowanie swoich źródeł) tutaj na Stack Exchange. ¯\_(ツ)_/¯
ELLIOTTCABLE
-1
brew uninstall --force ruby perl vim && brew install vim 

To działało dla mnie.

znak
źródło