Обновление 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
тоже не помогло.
Вот список для дальнейшего использования:
- Как указать MacVim на правильный Perl на OSX 10.10?
- сборка vim 7.4.488 завершается неудачно, если установлен Homebrew ruby, но / PATR / usr / bin / ruby стоит первым
- Brew установил Vim в Терминал с RVM (Ruby 1.9.3), MacVim и Command-T
- OS X El Capitan: не удалось открыть библиотеку 'libc.dylib'
Что случилось с моим 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
Это то, что сработало для меня.