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


48

Я не бегал 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? Как я могу это исправить?


Теперь , возможно , вы могли бы попробовать: xcode-select --installа затем brew upgrade, как это было предложено в разделе Обновления MacOS на общих вопросах
конусность

Ответы:


49

Решение

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

brew reinstall ruby vim

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

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

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

3
Просто повышен до высокой Сьерры, и это сделало свое дело! Спасибо.
e_x_p

1
У меня brew reinstall ruby macvimвозникла проблема с Mac Vim, поэтому я использовал этот и работал как шарм :)
Крисофоро Гаспар

6
После обновления до high sierra я запустил brew updateи brew upgrade, который обновил много программного обеспечения до версий high sierra, и исправил мою проблему.
Маффо

27

ТЛ; др

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 снова работает!


2
Черт brew upgrade, мне это дерьмо очень помогает. Большое спасибо за предложение четкого набора инструкций, чтобы исправить это.
Суким

У меня не получилось после обновления до Каталины:Warning: Refusing to link macOS-provided software: ruby
Кори Кляйн

7

Я столкнулся с подобной ошибкой, когда делал, 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

1
Моя ошибка была связана с библиотекой ruby ​​в операторе, но после нескольких исправлений ссылок я обнаружил, что мне нужно удалить / установить vim. Я недавно обновил рубин.
Джером

Я нашел эти самые шаги здесь github.com/Homebrew/brew/issues/2356#issuecomment-301830565 и это сработало.
Гейб

4

Для меня я обнаружил, что 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решенным вопросом


Это была и моя проблема. Отличный ответ; Благодарность!
Ротариал

1

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

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

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

в

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

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


Возможно, вы захотите использовать здесь символическую ссылку вместо переименования файла, чтобы все, что ссылается на libruby2.3.dylib, тоже не ломалось.
Дервент

0

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

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 должен снова работать.


0

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

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


0

Моя ошибка (это произошло после обновления 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" ==> Сводка 🍺 /usr/local/Cellar/ruby/2.6.3: 19 372 файла , 32.4MB Ошибка: не удалось удалить резервную копию кеги 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

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


-1

Я перестал использовать 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 

1
Делая заявления типа «все проблемы и проблемы безопасности», рассмотрите возможность включения ссылок на их документацию. (=
ELLIOTTCABLE


Er. тогда наслаждайся своим понижением. Я просто предлагаю объяснение того, почему вы его получили, как это принято (так же, как цитирование ваших источников) здесь, на Stack Exchange. ¯\_(ツ)_/¯
ELLIOTTCABLE

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.