dyld: библиотека не загружена: /usr/local/opt/icu4c/lib/libicui18n.62.dylib ошибка при запуске php afeter при установке узла с brew на Mac
Я установил узел с помощью homebrew (Mojave), после чего php перестал работать, и если я попытаюсь запустить php -v i, получу эту ошибку:
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, но проблема остается
42 ответа
Я решил int, обновив все пакеты R:
update.packages(checkBuilt = TRUE, ask = FALSE)
Ни один из этих ответов не применим к моему исправлению, на котором работал сервер разработки с узлом в репо, где он раньше работал.
Я видел, как несколько человек упоминали о переустановке узла или удалении определенных версий, но я хотел бы отметить, что вы можете попробовать переключить версию узла, используяnvm install/use <version>
. Мой системный узел каким-то образом переключился, и мне помогло переключение обратно на версию 8.
Я пробовал разными способами, но на данный момент мне помог только один — отредактировать локальную формулу Brew icu4c и пересобрать ее.
Идея пришла мне в голову, открыв JSON в описании формулы.
Я увидел, что есть прямая ссылка на релиз icu4c на github.
Я изменил его на нужную версию, а затем, когда я попытался его собрать, я получил ошибку, связанную с номером sha256.
Правильный вариант предлагается прямо в консоли. скопируйте, вставьте правильный вариант в локальную формулу и попробуйте построить еще раз.
В моем случае меня попросили обновить Xcode и загрузить необходимый пакет, я просто выполнил то, что он просил, а затем в качестве последнего шага мне пришлось запустить эту команду.
sudo xcodebuild -license accept
принять лицензию.
Вот шаги:
brew edit icu4c
измените эти строки
url "https://github.com/unicode-org/icu/releases/download/release-72-1/icu4c-72_1-src.tgz"
version "72.1"
sha256 "a2d2d38217092a7ed56635e34467f92f976b370e20182ad325edea6681a71d68"
с необходимой версией:
url "https://github.com/unicode-org/icu/releases/download/release-71-1/icu4c-71_1-src.tgz"
version "71.1"
sha256 "67a7e6e51f61faf1306b6935333e13b2c48abd8da6d2f46ce6adca24b1e21ebf"
сохранить, а затем
brew reinstall --build-from-source /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/icu4c.rb
Я просто хотел оставить подробный отчет о том, как исправить эту проблему на данный момент (у меня это сработало):
Сначала зайдите в локальную установку homebrew
cd /usr/local/Homebrew/
Homebrew> 2.5 удалите возможность установки формул непосредственно из репозиториев git, поэтому нам нужно проверить более старую версию
git checkout 2.3.0
Установите версию icu4c (в моем случае 64.2 совместим с php@7.1)
HOMEBREW_NO_AUTO_UPDATE=1 brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
Вернуться к текущей версии homebrew
git checkout -
Скажите brew использовать старую версию icu4c таким образом, вы можете выбрать, какую версию использовать, если вы оба установили
brew switch icu4c 64.2
В моем случае мне пришлось переключаться между двумя версиями icu4c, поскольку я все еще поддерживаю проекты PHP 5.6 (которые используют старый icu4c 64.2). brew install и переустановка по необработанным ссылкам.rb всегда по какой-то причине заменяет ранее установленные версии.
#fetching 64.2
brew fetch https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
#fetching stable version
brew fetch https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
cd $(brew --cache)/downloads
tar xvfz e2a83648f37dc5193016ce14fa6faeb97460258b214e805b1d7ce8956e83c1a7--icu4c-64.2.catalina.bottle.tar.gz
tar xvfz e045a709e2e21df31e66144a637f0c77dfc154f60183c89e6b04afa2fbda28ba--icu4c-67.1.catalina.bottle.tar.gz
mv -n icu4c/67.1 $(brew --cellar)/icu4c/
mv -n icu4c/64.2 $(brew --cellar)/icu4c/
затем переключаться между версиями
$ brew switch icu4c 64.2
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/67.1
Opt link created for /usr/local/Cellar/icu4c/64.2
$ brew switch icu4c 67.1
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/67.1
Opt link created for /usr/local/Cellar/icu4c/67.1
Если у вас последняя версия, и вы, как я, страдаете от хрупкого ПО и просто хотите
postgres
/ что бы ни работало:
$ brew upgrade icu4c
Warning: icu4c 69.1 already installed
Затем вы можете просто создать символические ссылки:
> dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuuc.68.dylib
cd /usr/local/opt/icu4c/lib
ln -s libicuuc.69.1.dylib libicuuc.68.dylib
ln -s libicuio.69.1.dylib libicui18n.68.dylib
Эти символические ссылки исчезнут при первом обновлении
icu4c
, но это, вероятно, самый быстрый способ исправить.
Получил эту ошибку тоже после установки php 7.3. У меня было решено обновить только мои старые версии php (5.6 и 7.0, а не из официальных репозиториев).
Сопровождающие скомпилировали новые версии php для текущей версии icu4c.
В моем случае PHP 7 поднялся с 0,31 до 0,33, и проблема была решена.
Для меня это было проблемой после установки phpunit на мой Mac.
У меня были установлены две версии PHP: 7.x(по умолчанию) и 8.x.
Произошло столкновение между PHPUnit и версией 7.x, которое мне было не особо нужно. Все, что мне нужно было сделать, это посмотреть, какие версии установлены на моем ноутбуке через Brew.
brew list
Удалите версии PHP, которые я использовал
brew unistalll php@7.4
и очистите каталог с установкой php:
rm -r /opt/homebrew/etc/php/7.4
После всего этого я открыл новый сеанс терминала, и все заработало нормально.
Необходимо установить правильную версию PHP.
Это сработало для меня:
brew install shivammathur/php/php@7.4
а потом
brew cleanup
Ошибка возникла, когда я попытался запустить docusaurus. Вот простое решение, которое работает для меня:
nvm use --lts
nvm
для этого требуется. Не нужно ничего переустанавливать.
В моем случае я переустанавливаю все пакеты, установленные с Homebrew
$ brew list | xargs brew reinstall
После этого я начинаю устанавливать свою версию, которая мне нужна
Я пробовал здесь много предложений, и в конце brew upgrade php
это то, что помогло мне, но, похоже, проблема повсюду