7

Ошибка "dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib" при запуске PHP после установки Node через Homebrew на Mac

1

Установил Node.js с помощью Homebrew на MacOS Mojave, после чего PHP перестал работать. Когда я пытаюсь выполнить команду php -v, получаю следующую ошибку:

php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found

Я попытался удалить как Node.js, так и icu4c, но проблема продолжается. Как можно решить эту проблему?

5 ответ(ов)

10

Обновление - как указано в некоторых комментариях, выполнение команды brew cleanup может помочь исправить эту ошибку. Если это не помогло, попробуйте обновить по отдельности или все ваши пакеты Homebrew.

Я столкнулся с аналогичной проблемой. У меня сработало обновление Homebrew и последующая чистка. Эта ошибка, вероятно, возникла у меня из-за несоответствия версий пакетов. Ни одно из вышеуказанных решений не помогло мне, но выполнение следующих команд Homebrew сработало.

Внимание - это обновит все ваши пакеты Homebrew, включая, но не ограничиваясь, PHP. Если вы хотите обновить только определенные пакеты, убедитесь, что вы точно указываете, какие именно.

brew upgrade icu4c

brew upgrade # или обновите все пакеты

и в конце

brew cleanup
3

В вашем случае это произошло потому, что icu4c была обновлена до версии 63, но установленное локально изображение Postgres все еще ссылалось на icu4c версии 62.1. Поэтому вам нужно было изменить используемую версию icu4c. Для этого выполните следующие команды:

brew info icu4c
brew switch icu4c <версия>

Где <версия> — это установленная версия, возвращенная командой info.

1

Я на самом деле удивлён, что это решение ещё не было предложено, и мне кажется, что это самый простой способ.

Перейдите на GitHub, найдите версию brewfile, которая соответствует нужной вам версии icu4c, и получите сырой вариант файла (следуйте по ссылкам выше, нажмите View File, затем Raw).

Затем просто выполните переустановку через brew из указанного URL.

Например, для версии 62.1:

brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb

Для версии 64.2:

brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb

ОБНОВЛЕНИЕ:

В более поздних версиях Homebrew может потребоваться сначала скачать файл. Если это так, выполните:

wget https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall icu4c.rb
0

Для меня решение заключалось в следующем:

brew reinstall icu4c

Затем выполните:

gem uninstall charlock_holmes
gem install charlock_holmes

Этот подход помог решить возникшую проблему.

0

У меня была такая же проблема после обновления macOS до версии 10.13.6. Я не мог запускать команды composer и php. После небольших исследований и попыток различных решений, найденных в интернете, мне помогло переустановить php с помощью homebrew.

Выполните команду:

brew reinstall [email protected]

Добавлено 14 марта на основании комментария Райана

Чтобы узнать, какую версию вы в данный момент используете, выполните команду php -v, и выберите правильную формулу (которую можно найти здесь: https://formulae.brew.sh/formula/php), чтобы заменить @7.1 в приведенной выше команде.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь