Я установил узел с помощью 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, но проблема не исчезла.
Для потомков: удаление / переустановка пряжи / узла, похоже, помогает.
согласно моему пониманию, это происходит, когда вы не соответствуете зависимостям версий. в моем случае команда "brew upgrade" устранила мои проблемы. пожалуйста, поправьте меня, если я в чем-то ошибаюсь.
Пока я получал это, проблема заключалась в том, что /usr/local/opt/icu4c не существовал, а brew reinstall icu4c выдал мне кучу проблем с отказом в разрешении для каталога icu4c. Итак, у меня sudo rm -rf /usr/local/Cellar/icu4c и brew reinstall icu4c, и все заработало.
У меня странная ситуация (я использую High Sierra на устаревшей машине), но это произошло после того, как я обновил PHP до версии 7.2 (или попытался это сделать). Мое решение заключалось в переустановке узла из загруженного файла. Я считаю, что Homebrew ненадежен, если вы находитесь вне диапазона MacOS, поддерживаемых Apple.






У меня была такая же проблема после того, как я обновил свой macOS до версии 10.13.6. Я не могу запускать команды composer и php. После некоторого исследования и опробования различных решений, размещенных в Интернете, переустановка php с использованием homebrew сработала.
brew reinstall [email protected]
Добавлено 14 марта на основе комментария Райана
получите версию, которую вы используете в настоящее время, запустив php -v и получите правильные формулы (которые вы можете найти здесь: https://formulae.brew.sh/formula/php) для замены @7.1 в приведенной выше команде.
У меня такая же ошибка при запуске node после обновления macOS до 10.14.2, brew reinstall node тоже был для меня билетом
Я начал получать эту ошибку после установки нового пакета с brew. brew upgrade исправил это для меня.
brew reinstall php может в конечном итоге установить версию, отличную от текущей. Возможно, вам придется указать версию с помощью [email protected]вы не можете получить текущую версию, запустив php -v, если ваш php сломан: p
@gingerCodeNinja, это правда, возможно, это может помочь: для Mac OS перейдите в терминал и запустите echo $PATH (если у вас есть php, вы должны увидеть что-то вроде этого: /usr/local/opt/[email protected]/bin). Это один из способов узнать, какие версии используются в настоящее время.
В моем случае это произошло из-за того, что icu4c был обновлен до версии 63, но мой локально установленный образ postgres по-прежнему ссылался на icu4c 62.1. Поэтому мне пришлось изменить используемую версию icu4c:
brew info icu4c
brew switch icu4c <version>
Где version - это установленная версия, возвращаемая info
Это именно то, что случилось и со мной, и вы ввели меня на верный путь. Основным недостатком этого подхода является то, что вы должны предварительно установить эту версию. Я обошел это в своем ответе
У меня 62.1 не было установлено. brew list icu4c показал файлы с /usr/local/Cellar/icu4c/63.1. brew switch icu4c 63.1 исправил это для меня.
Я нашел эту страницу после того, как обнаружил эту ошибку в моих журналах Postgres. Я также пробовал brew switch icu4c 63.1, но все равно получаю ту же ошибку в журналах даже после перезапуска postgres. Не уверенны что делать дальше...
В итоге я запустил brew reinstall postgres, и это, похоже, решило мои проблемы.
Помогает перейти на icu4c 61.1. 63.1 - не решить. 62.1 - не обнаружено.
Спасибо @ gray-black, у меня это сработало. Я использую следующую версию MacOS Mojave 10.14.4 (18E226)
@ApoorvParijat 62.1 - это только то, что было установлено Gray Black, а не часть буквальной команды для каждого пользователя в каждой системе.
Магия. Помогло с 6.4 -> 6.3
И у меня получился brew reinstall [email protected]
Явное переключение на уже установленную совместимую версию помогло мне. postgres искал v64. v64 действительно был установлен, он по-прежнему зашифрован с ошибкой изображения не найден, но начал работать, когда я явно установил его на v64
Сработало для меня, но я думаю, вы имеете в виду «Где версия - это номер версии в сообщении« Библиотека не загружена »». 62 в случае ОП. 64.2 в моем случае.
К сожалению, переключатель заваривания больше не доступен.
Оказывается, мне, как и @Grey Black, пришлось установить версию 62.1 icu4c. Больше ничего не работало.
Однако brew switch icu4c 62.1 работает только в том случае, если вы ранее устанавливали 62.1. Если вы этого не сделали, вам потребуется больше беготни. Homebrew использует предыдущие версии формул не упростить установку.
Вот как я это сделал:
git -C $(brew --repo homebrew/core) fetch --unshallowbrew log icu4c для отслеживания фиксации, ссылающейся на 62.1; 575eb4b делает свое дело.cd $(brew --repo homebrew/core)git checkout 575eb4b -- Formula/icu4c.rbbrew uninstall --ignore-dependencies icu4cbrew install icu4c Теперь у вас должна быть правильная версия зависимости! А теперь просто ...git reset && git checkout . Очистите измененный рецепт.brew pin icu4c Закрепите зависимость, чтобы предотвратить ее случайное обновление в будущемЕсли вы решите, что делать хотите обновить его в какой-то момент, обязательно запустите brew unpin icu4c
Когда я делаю brew log icu4c, получается всего 3-4 результата. Нет упоминания 62.1. Хеш, который вы использовали выше, тоже не работает. Удалили 62?
Сначала вы должны выполнить git -C (brew --repo homebrew/core) fetch --unshallow, чтобы убедиться, что у вас есть полная история brew git.
Так много драмы для обновления пряжи.
Это единственное решение, которое сработало для меня, спасибо! В моем случае проблема заключалась в пакете ffmpeg, который, как я полагаю, установил более новую версию icu4c. Ни обновление, ни обновление brew не помогли, ни переустановка, повторное связывание, сборка php из исходников.
Мне нужна была еще более старая версия icu4c. Выполнение этих шагов, но поиск более старой фиксации сработал. Чтобы узнать, какая версия вам нужна, проверьте файл в сообщении об ошибке: libicui18n.61.dylib - в моем случае это означало, что мне нужна версия 61.
Сработало для меня, за исключением того, что мне пришлось использовать git -C "$(brew --repo homebrew/core)" fetch --unshallow для шага # 1
В моем случае мне нужен icu4c v63, поэтому связанная фиксация для проверки - bc0c97952453ff6afc146aa3a706e9902aba4300. Команда git - это git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb, а затем brew switch 63.1.
@gedijedi Недавно я установил ffmpeg и обнаружил ту же ошибку. Выполнение обновления (brew upgrade) автоматически разрешило проблему, и brew switch восстановил версию php, которую я использовал. Нет необходимости делать всю установку своими руками.
Я считаю, что есть более простой способ сделать это (установить "предыдущую" версию чего-то через bew) ... этот пост SO сработал для меня просто и безупречно: stackoverflow.com/a/55828190
Не забудьте сделать `` brew update '' перед brew install icu4c. Кроме того, выберите unshallow, показанная команда не работает, поэтому я сделал cd $ (brew --repo homebrew / core), затем получил --unshallow
работал отлично. Он исправил его node, php, python и все остальные зависимые пакеты.
Не знаю почему, но он снова установил версию 64.1 вместо 62.1. Думаю, перед повторной установкой потребуется brew update.
это сработало для меня (как шарм!) большое спасибо! Я искал версию 64 (без второстепенного). Я нашел (поиск вручную в GitHub) этот коммит: 896d1018c7a4906f2c3fa1386aaf283497db60a2, который ссылается на версию «64.2», но это сработало! [email protected] теперь работает!
Это привело к появлению ==> Downloading https://ghcr.io/v2/homebrew/core/icu4c/manifests/67.1 #=#=-# # curl: (22) The requested URL returned error: 404 Error: Failed to download resource "icu4c_bottle_manifest" Download failed: https://ghcr.io/v2/homebrew/core/icu4c/manifests/67.1, когда я попытался получить версию 67.1 с github.com/Homebrew/homebrew-core/commit/….
У меня не сработало, исправлено этим новым замечательным php-краном: github.com/shivammathur/homebrew-php
Итак, brew пошел дальше. Изменилась структура команд и формат «формулы». Я прошел мимо формата, отредактировав рубин, чтобы он соответствовал новому формату. Хотя это мне не помогает, потому что, как сказал @bluepanda, https://ghcr.io/v2/homebrew/core/icu4c/manifests/64.2 больше нет. Однако я нашел альтернативную формулу, и она действительно сработала для меня: gist.github.com/bbatsche/c1c747bb9297661772ae7e106c556c3f. Я использовал wget, чтобы вытащить файл, а затем brew reinstall [email protected], а затем brew link Icu4c@64. Теперь я уйду к простоте моего бокса Archlinux :)
Вместо того, чтобы устанавливать старую версию icu4c, на которую может ссылаться старый (предварительно скомпилированный) php, лучше перекомпилировать старый php для связывания с более новой библиотекой.
brew uninstall [email protected]
brew install --build-from-source [email protected]
Это соберет php и свяжет его с более новой библиотекой. Я обнаружил, что reinstall не совсем работает; новая установка захлебнулась, когда папка назначения уже существовала.
Я также сделал brew link --force [email protected] для своей среды.
Пробовал, но без улучшений; Однако команда Gray Black brew switch icu4c 62.1 у меня сработала.
Только brew remove php и brew install php не работали, и brew reinstall php тоже.
Мое решение было сделать:
brew remove php
cd /usr/local/Cellar
rm -rf php/
brew install php
brew doctor
brew cleanup
Теперь php -v дает мне:
PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )
Update - As stated in some of the comments, running
brew cleanupcould possibly fix this error, if that alone doesn't fix it, you might try upgrading individual packages or all your brew packages.
У меня была такая же проблема. Обновление Homebrew, а затем очистка сработали для меня. Эта ошибка, вероятно, возникла у меня из-за несоответствия версий пакета. Ни одно из вышеперечисленных решений не устранило мою ошибку, но выполнение следующих команд homebrew помогло.
Caution - This will upgrade all your brew packages, including, but not limited to PHP. If you only want to upgrade specific packages make sure to be specific.
brew upgrade // for upgrading all packages -- this is the command I used
brew upgrade {package} // for upgrading a specific package
и наконец
brew cleanup
Это было просто
Это сработало для меня после запуска команды brew link npm...., которая, похоже, нарушила composer, php и т. д.
@VincentTang при чем тут npm? Где ты это запустил?
Я думаю, это не лучшая идея для тех, у кого есть среда с двумя версиями PHP, как у меня. Кроме того, brew upgrade обновит вашу версию PHP, и это не обязательно хорошо, если вашей целью является не обновление PHP, а устранение ошибки библиотеки.
Хорошо для меня! После проблемы с Rails.
@mpoletto Рекомендуется оставаться в актуальном состоянии (в целях безопасности), и homebrew предоставляет инструменты для установки более старой версии одной библиотеки, не подвергая риску всю среду, ваших пользователей и вашу систему. Если вы хотите использовать более старый php, это не должно происходить за счет размещения всей системы в капсуле времени.
@AbandonedCart Я думал о среде разработки, только на моей машине ... Представьте, что у меня есть две совершенно разные системы в двух производственных средах, одна с PHP 5.6, а другая с PHP 7.2. Я использую свою машину для разработки иногда до системы 5.6, а иногда до 7.2.
@mpoletto Ничто из того, что вы представили, не является причиной, по которой мое предложение невозможно. У вас действительно не должно быть производственных систем, которые намеренно устаревают без уважительной причины.
Умно, но не сработало для меня, с другой стороны, переустановка php7.2 также не сработала в моей системе, так что, вероятно, причина, почему ...
Это лучшее решение, которое я пробовал до сих пор, выбранный ответ не сработал
Я бы не стал этого делать, потому что brew upgrade обновит все ваши устаревшие пакеты, вместо этого, вероятно, только brew upgrade npm или конкретный пакет, а не все.
@xgMz Насчет этого вы правы. Меня не волновало, обновляю ли я все свои пакеты, но для кого-то, кто не хочет этого, это, вероятно, не очень хорошо. Я добавил примечание к своему решению. Спасибо!
Ответ @Leland ниже - это то, что мне было нужно даже после очистки пивоварения и обновления конкретного пакета. Переключение пакета вручную сработало.
Это сработало еще до того, как я запустил очистку от пива. В моем случае ошибка не возникала, пока я не попытался запустить команду n98 (magento cli) через crontab. Это помогло.
Я увидел brew upgrade и сразу невзлюбил.
Я сделал это и в итоге получил полдня очистки пакета, чтобы вернуть свою среду разработки. Не лучшая идея для большинства случаев.
@Joey Мне жаль это слышать! Я знаю, что это решение помогло мне и другим. Если есть что-то, что я должен включить в этот ответ, чтобы этого не случилось с кем-то другим, дайте мне знать!
Мне нужен был только brew cleanup, поскольку я уже сделал brew upgrade, и эта ошибка была результатом того, что с node.
@AbandonedCart Я проголосовал отрицательно, потому что считал эту команду опасной для новичков. Это похоже на оценку новичков в Linux, которые используют rm -rf. Простите мое мнение.
@mpoletto не беспокойтесь! Я стараюсь дать соответствующие предупреждения в ответ, чтобы любой, кто рассматривает решение, понял последствия.
@mpoletto Я ценю вашу заботу о новичках, даже если я не уверен, почему меня отметили.
@AbandonedCart Извините, но он не отображается или я не вижу, где я вас отметил.
Это ужасный ответ. Слишком общий. Люди, которые знают, что они делают, могут получить общее решение из конкретного решения, но люди, которые не знают, что они делают, не могут получить конкретное решение из такого общего решения, как это.
@ J.Ko, ты не совсем неправ, но разве не работает хорошее решение? Эта ошибка может возникать из-за множества проблем с пивом и, похоже, помогла хотя бы нескольким людям выбраться из игры. Если у вас есть лучшее решение, я с радостью проголосую за ваш ответ.
@VimDiesel У меня нет решения. Вот почему я здесь ищу. Тот, что ниже, от Grey Black, работал.
brew upgrade у меня работал, чистка не нужна
brew cleanup работал у меня, но мне также пришлось сделать brew update-reset, чтобы потом исправить варево, как в этот ответ на другой вопрос.
@xgMz спасибо, brew upgrade npm у меня работает после очистки
Похоже, что после последнего обновления OS X невозможно связать icu4c с помощью brew. Что делает вещи более интересными. Единственное решение, которое я нашел работающим для меня:
icu4c 62.1 в /usr/local/icu4c/62.1mkdir ~/sources
cd ~/sources
wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
tar xvzf icu4c-62_1-src.tgz
cd icu/source/
sudo mkdir /usr/local/icu4c/62.1
./configure --prefix=/usr/local/icu4c/62.1
make
sudo make install
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
DYLD_LIBRARY_PATH в ~/.bash_profile:export DYLD_LIBRARY_PATH=/usr/local/include
Я использую PHP 7.1, и это единственное, что у меня сработало.
В моем случае мне нужна была версия 64.2, поэтому я скачал ее с github.com/unicode-org/icu/releases/download/release-64-2/…
После обновления до OS Big Sur icu4c 67 отсутствовал, перепробовал все виды решений, но это было единственное, что сработало. Скачал с github.com/unicode-org/icu/releases/download/release-67-1/…. Спасибо!
Это было перемещено сюда: github.com/unicode-org/icu/releases/download/release-62-2/…
Ответ Лиланда сработал для меня, но мне пришлось изменить шаги 4 и 6 на:
4) git checkout -B icu4c-62.1 575eb4b
6) варите переустановите Formula / icu4c.rb
Получил эту ошибку после установки php 7.3. Я решил обновить только мои старые версии php (5.6 и 7.0, а не из официальных репозиториев).
Сопровождающие скомпилировали новые версии php для текущего icu4c.
В моем случае PHP 7 увеличился с 0,31 до 0,33, и проблема была решена.
Разве это не покрывается другими ответами?
ИМО, нет. Один ответ говорит о перекомпиляции, и что мне нужно сделать, это «обновить».
Я тоже получил эту ошибку после обновления из неофициального репо, но узел обновления brew исправил ее.
Запустите npm version, если вы увидите ту же ошибку, обновите npm.
brew upgrade npm.
==> Upgrading 1 outdated package, with result:
npm 8.1.2 -> 10.3.0
==> Upgrading npm
==> Installing dependencies for node: icu4c
==> Installing node dependency: icu4c
Сработало именно так, как вы сказали. npm version вызывал ту же ошибку, обновление npm исправило ее. Спасибо!
На самом деле я очень удивлен, что это решение еще не было представлено, и мне кажется, что это самое простое решение.
Перейдите на 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
ты спасатель!
На самом деле это лучшее решение, если brew switch icu4c 62.1 не работает для вас в первую очередь.
Это единственное, что у меня сработало после нескольких часов попыток исправить npm. Спасибо!
Сработало отлично! Чтобы исправить ошибку 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
Это было именно то решение, которое я искал. У меня были проблемы с версией valet-php, которая все еще использовала старую версию icu4c, тогда как brew обновился до более новой.
В моем случае это лучше, чем переустанавливать PHP, потому что у меня есть Oracle OCI, и переустанавливать его сложно. Спасибо
Для меня это лучшее решение. Я не хочу делать «апгрейд» всего, что сейчас не нужно.
К сожалению, варить апгрейд удаляет старую связанную версию и для людей, которые все еще хотят использовать новую версию и поддерживать пиво в актуальном состоянии: 1) Используйте указанную команду для установки более старой версии 2) Скопируйте каталог 64.2 из / usr / local / Подвал / icu4c / где-нибудь локально 3) Запустите brew upgrade, чтобы установить последнюю версию icu4c 4) Скопируйте сохраненный каталог в / usr / local / Подвал / icu4c / 5) Теперь вы можете переключаться между версиями: brew switch icu4c 64.2
Для icu4c 66: brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
Для icu4c 67: brew переустановить raw.githubusercontent.com/Homebrew/homebrew-core/…
Это больше не работает. Просит brew extract
@brunouno Нужно скачать .rb файл и сделать: brew reinstall icu4c.rb
версия 67,1: raw.githubusercontent.com/Homebrew/homebrew-core/…
Обычно рекомендуется отказаться от определенных версий, но добавить это как другой вариант (с использованием master / latest). wget https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb; brew reinstall icu4c.rb
У меня не сработало, исправлено этим новым замечательным php-краном: github.com/shivammathur/homebrew-php
У меня сработал простой запуск `brew переустановить icu4c. Спасибо, что повели меня в правильном направлении!
Это решение сработало для меня. Я запустил curl https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb -o icu4c.rb; brew reinstall icu4c.rb, и это устранило проблему.
У меня были проблемы, потому что моя версия PHP (7.3) ожидала icu4c 63, а brew установит только 64.
https://stackoverflow.com/a/55828190/2000947 помог мне установить 63.
после долгих поисков это то, что мне помогло. Спасибо
Чтобы перейти на более раннюю версию, мне пришлось перекомпилировать из исходников (MacOS Mojave)
$ wget https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
$ tar xvfz icu4c-62_1-src.tgz
$ cd icu/sources
$ ./configure
$ make
$ make install
Это исправило это для меня:
brew upgrade node
Это сработало и для меня. Я никогда полностью не исследовал это, но я считаю, что brew просто исправил зависимости при обновлении узла. Это казалось намного более сдержанным по сравнению с обновлением пивоварни.
похоже, похожий случай,> "узел переустановки пивоварни" помог мне после перехода на Каталину
Как ни странно, эта ошибка /icu4c/lib/libicui18n.66.dylib внезапно возникла, когда я запускал rspec. Я спрятал несколько изменений кода, ошибка все еще обнаруживалась. обновление узла устранило проблему! Спасибо!
Спасибо :) Я собирался попробовать другие решения, но это сразу устранило мою проблему.
На MacOS Mojave я мог исправить это только с помощью brew upgrade.
Для меня brew reinstall nodejs исправил это - моя проблема заключалась в запуске Elixir / Phoenix, поэтому не для PHP, я думаю, что это было вызвано brew install postgres, но переустановка не помогла. Я получал это из команд npm.
brew update && brew upgrade у меня работал
Добро пожаловать в SO! Ваше сотрудничество приветствуется. В этом случае есть еще 15 вопросов, так что будет хорошим поводом показать свои плюсы.
Я следил за этой статьей здесь, и мне кажется, что это недостающий кусок головоломки:
brew uninstall node@8
После попытки каждого предложения из разных форм моя ошибка прекратилась после использования этого, но теперь у нас возникла проблема с npm после переустановки узла
Принятый ответ у меня не сработал. То, что у меня сработало, было вариацией этого ответа: brew remove node && brew install node.
В OSX 10.15.4 при запуске xcode-select --install проблема была решена.
в моем случае я переустанавливаю все пакеты, установленные с помощью Homebrew
$ brew list | xargs brew reinstall
После этого я начинаю устанавливать свою версию, которая мне нужна
Это то, что наконец сработало для меня.
brew reinstall postgres
После выполнения указанной выше команды вам может потребоваться запустить
brew postgresql-upgrade-database
для доступа к вашим предыдущим данным.
Решение в это суть сделало это за меня
brew uninstall --ignore-dependencies node icu4c
brew install node
В моем случае приготовьте обновление icu4c до версии 67.1, чтобы мой php7.1 не работал. Просто переустановите icu4c, и все в порядке.
Я просто переустановил php 7.3, который был сломан, и исправил его. Однако это руководство указывало мне правильное направление.
Я пробовал многие из предложений здесь, и, в конце концов, brew upgrade php помог мне, но, похоже, проблема повсюду
В моем случае мне пришлось переключаться между двумя версиями 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
Для меня это была установка icu4c с нужной версией.
Если вам нужно установить старую версию, например версию 62 (те же шаги для других версий), вам необходимо:
https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
https://raw.githubusercontent.com/Homebrew/homebrew-core/88b9cc789820f2f544d8d4a1053eebb044c2926c/Formula/icu4c.rb
brew tap [yourUsername]/homebrew-versionsbrew install [yourUsername]/homebrew-versions/icu4cГде [yourUsername] - это имя вашей учетной записи GitHub или человека, у которого уже есть необходимая версия.
Unfortunately, latest homebrew gives no longer a warning and now displays the error: Error: Calling Installation of XXX from a GitHub commit URL is disabled! Use 'brew extract XXX' to stable tap on GitHub instead. So the way to go now is to create a new repo on github called homebrew-versions to host the Formula in a Tap Then initialise it with: brew tap-new MYORG/homebrew-versions after git cloning the homebrew repo as suggested by Shine Hugh, copy paste the raw ruby file to your new Formula. Beware the funny naming convention! Example: File name is: [email protected] Class name is: GettextAT0202 Example: https://github.com/nedap/homebrew-versions
source:https://itnext.io/how-to-install-an-older-brew-package-add141e58d32
Если у вас возникла ошибка, попробуйте установить из source: // 1. скачать файл (например, для 67) wget raw.githubusercontent.com/Homebrew/homebrew-core/… // 2. Найдите ссылку на архив внутри файла 'cat icu4c.rb' // 3. Скачиваем архив и устанавливаем из исходников типа stackoverflow.com/a/55024755/3126078
Я действительно пробовал все разумные решения, упомянутые в этом посте, но все равно получаю ту же ошибку при запуске php -v или composer.
Версия узла была в порядке, npm также не было проблем с установкой правильных версий, и все они работали.
Запуск reinstall [email protected] просто выдал ошибку.
В итоге пришлось бежать:
brew reinstall icu4c
Это в основном сработало, и мне пришлось вручную устанавливать зависимости php, такие как imagick.so, imap.so.
Поскольку эти библиотеки были установлены для проекта, который я больше не поддерживаю, я могу обойтись без них. Но если вы действительно от них зависите, имейте в виду, что потом будет еще много работы.
это сработало для меня! npm install не работал после того, как на прошлой неделе мой рабочий MacBook Force обновился до Catalina. Первоначально найдено здесь: gist.github.com/berkedel/d1fc6d13651c16002f64653096d1fded
Я просто хотел оставить подробное описание того, как исправить эту проблему в текущий момент (у меня это сработало):
Сначала зайдите в локальную установку homebrew
cd /usr/local/Homebrew/
Homebrew> 2.5 удалите возможность установки формул непосредственно из репозиториев git, поэтому нам нужно проверить более старую версию
git checkout 2.3.0
Установите версию icu4c (в моем случае 64.2 совместим с [email protected])
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
моя проблема:
# npm install -g canvas
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/opt/node@8/bin/node
Reason: image not found
на данный момент 20210118, после многих попыток:
...
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
brew upgrade npm
brew install node
brew uninstall --ignore-dependencies node@8 icu4c
brew install icu4c
...
Окончательное решение работал:
brew reinstall npm
Команда brew reinstall npm решила мою проблему
Я решил int, обновив все пакеты R:
update.packages(checkBuilt = TRUE, ask = FALSE)
После многих лет работы с этой проблемой у меня сработало следующее, на удивление простое решение:
Последняя версия: https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
brew reinstall icu4c.rbИсточник: https://gist.github.com/hgrimelid/703691ab48c4a4d0537cfe835b4d55a6
Я нашел похожий набор инструкций, но он требует компиляции источника: programmersought.com/article/34721476513, который у меня сработал.
Собственно, решение я нашел прямо на странице homebrew: https://docs.brew.sh/Common-Issues
Обновление macOS может вызвать следующие ошибки:
xcode-select --install
brew upgrade
В моем случае проблема не была связана с обновлением ОС, но решение сработало нормально.
Это помогло мне после обновления до Mac OS 11.6 Big Sur. Спасибо!
Если у вас последняя версия icu4c, и вы, как и я, страдаете от хрупкого программного обеспечения, и просто хотите, чтобы 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, но это, вероятно, самый быстрый способ исправить.
Для меня решение было:
brew reinstall icu4c
потом
gem uninstall charlock_holmes
gem install charlock_holmes
Вы также установили php из Homebrew? Вы пытались переустановить php?