node.js — dyld: библиотека не загружена: /usr/local/opt/icu4c/lib/libicui18n.62.dylib ошибка при запуске php afeter при установке узла с brew на Mac

Я установил узел с помощью homebrew (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

Я пытался удалить оба узла и icu4c, но проблема остается

18

Решение

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

 brew switch icu4c 62.1
16

Другие решения

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

brew reinstall php

10

Оказывается, мне, как @Grey Black, пришлось фактически установить v62.1 из icu4c. Больше ничего не получалось.

Тем не мение, brew switch icu4c 62.1 работает только если вы установили 62.1 в прошлом. Если у вас нет, там больше работы. Доморощенный делает не облегчить установку предыдущие версии формул.

Вот как я это сделал:

  1. Сначала нам нужен глубокий клон Homebrew репо. Это может занять некоторое время: git -C (brew --repo homebrew/core) fetch --unshallow
  2. brew log icu4c отследить коммит, который ссылается на 62.1; 575eb4b делает трюк.
  3. cd $(brew --repo homebrew/core)
  4. git checkout 575eb4b -- Formula/icu4c.rb
  5. brew uninstall --ignore-dependencies icu4c
  6. brew install icu4c Теперь у вас должна быть правильная версия зависимости! Теперь просто …
  7. git reset && git checkout . Очистите свой измененный рецепт.

Добавил пару дополнительных заметок, спасибо @Noah за улов

6

Вместо того, чтобы установить старую версию icu4c что старый (предварительно скомпилированный) php может ссылаться на него, лучше перекомпилировать старый php для ссылки на более новую библиотеку.

brew uninstall php@7.2
brew install --build-from-source php@7.2

Это соберет php и свяжет его с новой библиотекой. я нашел reinstall не совсем работал; новая установка захлебнулась, когда папка назначения уже существовала.

Я тоже сделал brew link --force php@7.2 для моего окружения.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector