Я установил нод с помощью 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, но проблема остается
Ответы:
У меня была такая же проблема. Обновление Homebrew, а затем очистка работали для меня. Эта ошибка, вероятно, обнаружилась для меня из-за несоответствия версий пакета. Ни одно из вышеперечисленных решений не устранило мою ошибку, но выполнили следующие команды homebrew.
а потом
источник
brew upgrade
что обновлю все ваши устаревшие пакеты brew, вместо этого, вероятно, сделайте толькоbrew upgrade npm
конкретный пакет или не все.В моем случае это произошло из-за того, что icu4c был обновлен до версии 63, но мой локально установленный образ postgres все еще ссылался на icu4c 62.1. Поэтому мне пришлось изменить используемую версию icu4c:
Где
version
установленная версия возвращаетсяinfo
источник
brew list icu4c
показал файлы из/usr/local/Cellar/icu4c/63.1
.brew switch icu4c 63.1
исправил это для меня.brew switch icu4c 63.1
но по-прежнему получаю ту же ошибку в журналах, даже после перезапуска postgres. Не уверен, что делать дальше ...brew reinstall postgres
и это, казалось, решило мои проблемыicu4c 61.1
.63.1
- не решить.62.1
- не найден.Я на самом деле очень удивлен, что это решение еще не было представлено, и я чувствую, что это самое простое решение.
Перейдите на GitHub, найдите версию brewfile, которая соответствует версии,
icu4c
которая вам нужна, и получите сырую версию файла (перейдите по ссылкам выше и нажмитеView File
затемRaw
).Затем просто переустановите варев с этого URL.
Например, версия
62.1
:Например, версия
64.2
:источник
brew switch icu4c 62.1
в первую очередь , не работает для вас.dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
эта команда исправила это:brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
Оказывается, мне, как @Grey Black, пришлось фактически установить v62.1 из icu4c. Больше ничего не получалось.
Тем не менее,
brew switch icu4c 62.1
работает только если вы установили 62.1 в прошлом. Если у вас нет, там больше работы. Homebrew не облегчает установку предыдущих версий формул.Вот как я это сделал:
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
отследить коммит, который ссылается на 62.1;575eb4b
делает трюк.cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
Теперь у вас должна быть правильная версия зависимости! Теперь просто чтобы ...git reset && git checkout .
Очистите свой измененный рецепт.источник
brew log icu4c
, есть только 3-4 результата. Отсутствует упоминание 62.1. Хэш, который вы используете выше, тоже не работает. Они удалили 62?git -C (brew --repo homebrew/core) fetch --unshallow
должны убедиться, что у вас есть полная история git.icu4c
. Не работало ни обновление, ни обновление brew, ни переустановка, и перекомпоновка, сборка php из исходного кода.git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb
и затемbrew switch 63.1
У меня была такая же проблема после того, как я обновил свою
macOS
версию10.13.6
. Я не могу запуститьcomposer
иphp
команды. После некоторого исследования и опробования различных решений, размещенных в сети, переустановка php с помощьюhomebrew
работала.brew reinstall php@7.1
Добавлено 14 марта на основании комментария Райана
получите версию, которую вы используете в данный момент, запустив
php -v
и получите правильные формулы (которые вы можете найти здесь: https://formulae.brew.sh/formula/php ) для замены@7.1
в приведенной выше команде.источник
node
обновлении MacOS до10.14.2
, этоbrew reinstall node
был билет для меня тожеbrew upgrade
это исправил для меня.brew reinstall php
может в конечном итоге установить другую версию, чем текущая. Возможно, вам придется указать версию с помощьюphp@7.1
php -v
если ваш php не работает: pecho $PATH
(если у вас естьphp
, вы должны увидеть что-то вроде этого :),/usr/local/opt/php@7.2/bin
это один из способов узнать, какие версии используются в настоящее время.Запустите
npm version
и посмотрите, если вы видите ту же ошибку.Если так, обновите свою версию npm
brew upgrade npm
.кредиты
источник
Это исправило это для меня:
источник
Просто
brew remove php
иbrew install php
не работал, и не делалbrew reinstall php
. Мое решение было сделать:Теперь
php -v
дает мне:источник
Похоже, невозможно
icu4c
использовать ссылкиbrew
после последнего обновления OS X. Что делает вещи более интересными. Единственное решение, которое я нашел для меня:icu4c
62.1 в/usr/local/icu4c/62.1
DYLD_LIBRARY_PATH
в~/.bash_profile
:источник
В MacOS Mojave единственный способ исправить это было с
brew upgrade
источник
У меня были проблемы, потому что моя версия PHP (7.3) ожидала, что icu4c 63 и brew установит только 64.
https://stackoverflow.com/a/55828190/2000947 помог мне установить 63.
источник
Для меня
brew reinstall nodejs
это было исправлено - моя проблема была с запуском Elixir / Phoenix, поэтому не по PHP, я думаю, что это было вызваноbrew install postgres
, но переустановка, которая не помогла. Я получал это отnpm
команд.источник
brew update && brew upgrade
работал на меняисточник
Это то, что, наконец, сработало для меня.
brew reinstall postgres
После запуска вышеуказанной команды вам может понадобиться
brew postgresql-upgrade-database
чтобы получить доступ к вашим предыдущим данным.
источник
Вместо того, чтобы устанавливать старую версию, на
icu4c
которую может ссылаться старый (предварительно скомпилированный) php, лучше перекомпилировать старый php для ссылки на более свежую библиотеку.Это соберет php и свяжет его с новой библиотекой. Я обнаружил,
reinstall
что не совсем работает; новая установка захлебнулась, когда папка назначения уже существовала.Я также сделал
brew link --force php@7.2
для моей среды.источник
brew switch icu4c 62.1
команда Серых Черных сработала для меня.Ответ Леланда сработал для меня, но мне пришлось изменить шаги 4 и 6 на:
4) git checkout -B icu4c-62.1 575eb4b
6) заварить переустановить формулу / icu4c.rb
источник
Чтобы понизить версию, мне пришлось перекомпилировать из исходного кода (MacOS Mojave)
источник
я следовал этой статье здесь, и это, кажется, недостающий кусок головоломки для меня:
источник
На OSX 10.15.4 работает
xcode-select --install
исправил проблему для меня.источник
Получил эту ошибку тоже после установки php 7.3. У меня было решено обновить только мои старые версии php (5.6 и 7.0, а не из официальных репозиториев).
Сопровождающие скомпилировали новые версии php для текущей версии icu4c.
В моем случае PHP 7 поднялся с 0,31 до 0,33, и проблема была решена.
источник
Решение в этой сути сделало это для меня
источник
в моем случае я переустанавливаю все пакеты, установленные с помощью Homebrew
После этого я начинаю устанавливать нужную мне версию
источник