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ć?


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

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!


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

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


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.


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


0

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

link parzenia ruby


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. :)


-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 

1
Dokonując takich stwierdzeń, jak „wszystkie problemy i kwestie bezpieczeństwa”, należy uwzględnić łącza do ich dokumentacji. (=
ELLIOTTCABLE,


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.