оновлення варіння зламало Vim на OS X (dyld: Бібліотека не завантажена)


47

Я довго не бігав 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теж не допомогло.

Ось список для подальшої довідки:

Що сталося з моїм Вімом? Як я можу це виправити?


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

Відповіді:


48

Рішення

Спробуйте перевстановити rubyі vim, напр

brew reinstall ruby vim

Вирішення проблем

Ось інші пропозиції, якщо вище не допоможе:

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

3
Просто перейшов на високу Сьєрра, і це зробило трюк! Спасибі.
e_x_p

1
У мене виникли проблеми з mac vim, тому я скористався цим замість цього brew reinstall ruby macvimі працював як шарм :)
Crisoforo Gaspar

6
Після переходу на високу sierra я побіг brew updateі brew upgrade, що модернізував багато програмного забезпечення до версій sierra і виправив мою проблему.
maffo

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робить мені це лайно багато. Дуже дякую, що запропонували чіткий набір інструкцій, щоб виправити це.
Сукіма

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/isissue/2356#issuecomment-301830565, і це спрацювало.
gabe

4

Для мене я виявив, що пиво якось встановлено macvim, і воно суперечило OS 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 list

І, безумовно, видалення macvim із $ brew uninstall macvimвирішеною проблемою


Це було і моє питання. Чудова відповідь; Дякую!
поворотний набір

1

Я спробував перевстановити, перевстановити, видалити всі доступні версії тощо для ruby ​​та vim, але нічого насправді не допомогло.

Таким чином, я просто вирішив перейменувати свій файл dilib

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

Де знаходиться лібрубі.2.4.1.диліб?

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

У моєму випадку виявляється, рубін був встановлений, але з причини не пов'язаний, так що:

заварювати посилання рубін


0

Моя помилка (ця сталася після оновлення домашньої версії):

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

Це зайняло годину мого життя. Моє рішення:

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

Відгуки від домашньої мови:

ruby - це лише кег, що означає, що він не був пов'язаний з / usr / local, оскільки macOS вже надає це програмне забезпечення, а встановлення іншої версії паралельно може викликати всілякі проблеми.

Якщо вам потрібно спочатку запустити рубін у своєму запуску 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,4 Мб Помилка: Не вдалося видалити резервну копію рубіна! Зробіть це вручну: sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

Я дотримувався вказівок домашнього пива та вручну зняв резервну копію рубіна

$ 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 'шляхом, як у відповіді I3x, але я все-таки отримав ту саму помилку (так, я відкрив нове вікно терміналу).

Отже, я знову завантажив macvim . Коли мені сказали, що на моєму комп’ютері вже є MacVim.app, я зупинив установку і змінив ім'я на MacVim_original.app. Потім я приступаю до встановлення нового macvim. Після цього macvim знову працював у Терміналі. Я запускаю його за допомогою команди швидкого доступу:

$ m 1.py 

1
Складаючи заяви типу "всі проблеми та проблеми безпеки", враховуйте включення посилань на їх документацію. (=
ELLIOTTCABLE


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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.