Обновление brew сломало Vim на OS X (dyld: библиотека не загружена)

Я не бегаю brew update && brew upgrade в течение долгого времени.

Я только что сделал огромное обновление, которое, как оказалось, сломало мой Vim.

Это то, что я получил после запуска 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

Я сталкивался с некоторыми сайтами, но ни один из них не был на самом деле полезным.

Они сказали, что это может быть связано с rvm но brew uninstall vim; rvm system; brew install vim не помогло Я также попытался переустановить MacVim, но это не решило проблему.

Добавление export PATH="/usr/local/bin:$PATH" к моему .bash_profile тоже не помогло.

Вот список для дальнейшего использования:

Что случилось с моим Vim? Как я могу это исправить?

9 ответов

Решение

ТЛ; др

brew link --overwrite ruby

подробности

На самом деле все оказалось довольно просто. Я последовал предложению бежать brew doctor и я получил эти результаты:

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

Итак, я побежал brew link ruby, Вот что я получил:

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'

В результате я решил бежать brew link --overwrite ruby и теперь мой Vim снова работает!

Решение

Попробуй переустановить ruby а также vimнапример,

brew reinstall ruby vim

Поиск проблемы

Вот другие предложения, если выше не поможет:

  • Найти любые ссылки на DYLD_LIBRARY_PATH, DYLD_FALLBACK_LIBRARY_PATH или же DYLD_FRAMEWORK_PATH переменные среды и удалите их из сценариев оболочки запуска (например, ~/.bashrc, ~/.bash_profile, так далее.).

Я столкнулся с подобной ошибкой при выполнении brew upgrade где libperl не загружается.

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

Исправлено было переустановить сломанную зависимость и vim:

brew uninstall --ignore-dependencies perl
brew uninstall vim
brew install vim

Для меня я обнаружил, что brew каким-то образом установил macvim, и он продолжал конфликтовать с OS vim. Попытки использовать обычный vim и запускать команды git, такие как эти ошибки:

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

Поэтому я продолжил и удалил все связанные с vim пакеты, которые установил brew:

$ brew list

И, конечно же, удаление Macvim с $ brew uninstall macvim решил проблему

Я попытался переустановить, заново связать, удалить все доступные версии и т. Д. Для ruby ​​и vim, но ничего не помогло.

Таким образом, я просто решил переименовать файл dylib из

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

в

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

Результатом этого переименования является то, что теперь он прекрасно работает.

Если вы получили сообщение, подобное следующему:

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.

и вы управляете своим Ruby с помощью rvm, тогда правильная установка одной переменной среды должна вернуть vim в действие.

Выполните следующие действия, чтобы проверить, применимо ли это к вашей среде:

Определяется ли DYLD_LIBRARY_PATH и правильно ли это?:

$ env|grep DYLD_LIBRARY_PATH

Где установлен Ruby?

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

Это показывает, что моим рубином управляет rvm.

Где находится libruby.2.4.1.dylib?

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

Добавьте каталог "lib" и добавьте его в файл запуска:

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

Примечание. Используйте любой файл запуска (~/.profile, ~/bash_exports и т. Д.), Который имеет смысл для вашей рабочей станции.

Теперь, когда вы начинаете новый сеанс терминала, ваш vim должен снова работать.

В моем случае оказывается, что ruby ​​был установлен, но по причине не связан, поэтому:

варка ссылка рубин

Моя ошибка (это произошло после обновления homebrew):

dyld: библиотека не загружена: /usr/local/opt/ruby/lib/libruby.2.6.dylib Ссылка на: /usr/local/bin/vim Причина: изображение не найдено [1] 2800 abort vim

Это заняло час моей жизни. Мое решение:

Переустановить ruby ​​$ brew переустановить ruby

Отзывы от Homebrew:

ruby предназначен только для бочонков, что означает, что он не был связан с / usr / local, потому что macOS уже предоставляет это программное обеспечение, и параллельная установка другой версии может вызвать все виды проблем.

Если вам нужно сначала использовать ruby ​​при запуске PATH: echo 'export PATH="/usr/local/opt/ruby ​​/bin:$PATH"' >> ~/.zshrc

Чтобы компиляторы могли найти ruby, вам может потребоваться установить: export LDFLAGS="-L/usr/local/opt/ruby ​​/lib" export CPPFLAGS="-I/usr/local/opt/ruby ​​/include"

Чтобы pkg-config могла найти ruby, вам может потребоваться установить: export PKG_CONFIG_PATH="/usr/local/opt/ruby ​​/lib/pkgconfig" ==> Summary /usr/local/Cellar/ruby/2.6.3: 19 372 файла, Ошибка 32,4 МБ: не удалось удалить резервную копию кеги ruby! Сделайте это вручную: sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

Я следовал инструкциям homebrew и вручную удалил резервную бочонок ruby

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

После ввода пароля и попытки открыть Vim снова с

$ vim

Вим открылась, и я немного улыбнулась и отмахнулась от пота разочарования.:)

Как упоминалось здесь, следующее исправило это для меня.

brew uninstall macvim && brew install macvim --HEAD

Кроме того, после обновления до macOS Catilina я открываю X-Code для установки необходимых обновлений.

Я перестал использовать Homebrew из-за всех его проблем и проблем безопасности.

В любом случае я обновился с OSX Yosemite в OSX High Sierra и Macvim перестал работать в терминале. Я получил ошибку:

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

Я попытался EXPORT'ing путь, как в ответе I3x, но я все еще получил ту же ошибку (да, я открыл новое окно терминала).

Итак, я снова загрузил Macvim. Когда мне сказали, что на моем компьютере уже есть MacVim.app, я остановил установку и изменил имя на MacVim_original.app. Затем я приступаю к установке нового Macvim. После этого macvim снова работал в Терминале. Я запускаю его с помощью команды быстрого доступа:

$ m 1.py 
brew uninstall --force ruby perl vim && brew install vim 

Это то, что сработало для меня.

Другие вопросы по тегам