Как исправить недостающую библиотеку после обновления и обновления Homebrew

Я решил обновить и обновить Homebrew в пятницу днем ​​(почему бы и нет), и это, похоже, привело к отсутствующей библиотеке, которая влияет на мою способность запускать почти все (PHP, Laravel Valet, Node и т. Д.) Ошибка сообщение на каждом из них одинаковое, поэтому я надеюсь, что это простое решение, но я не уверен, с чего начать.

Chriss-MacBook-Pro-2:~ chris$ node --version
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
Abort trap: 6
Chriss-MacBook-Pro-2:~ chris$ valet
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Password:
Sorry, try again.
Password:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
/usr/local/bin/valet: line 54:   729 Abort trap: 6           php "$DIR/cli/valet.php" "$@"
Chriss-MacBook-Pro-2:~ chris$ php --version
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Abort trap: 6

Кажется, все они ищут библиотеку в /usr/local/opt/icu4c/lib/libicui18n.61.dylib

** РЕДАКТИРОВАТЬ **

Я выполнил команду brew, предложенную Styx, и вот результат:

Chriss-MacBook-Pro-2:~ chris$  brew link icu4c
Warning: Refusing to link macOS-provided software: icu4c
If you need to have icu4c first in your PATH run:
  echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
  echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile

For compilers to find icu4c you may need to set:
  export LDFLAGS="-L/usr/local/opt/icu4c/lib"
  export CPPFLAGS="-I/usr/local/opt/icu4c/include"

Добавить icu4c на мой путь достаточно просто, но я не уверен, что делать со второй частью, которая просит меня установить

** Обновлять **

Вот результат работы ls -l /usr/local/opt/icu4c/lib/

total 131128
drwxr-xr-x  6 chris  staff       192 Apr 17 15:42 icu
-rw-r--r--  1 chris  staff  27537504 May 31 14:04 libicudata.64.2.dylib
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicudata.64.dylib -> libicudata.64.2.dylib
-r--r--r--  1 chris  staff  27532496 Apr 17 15:42 libicudata.a
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicudata.dylib -> libicudata.64.2.dylib
-r--r--r--  1 chris  staff   2578452 May 31 14:04 libicui18n.64.2.dylib
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicui18n.64.dylib -> libicui18n.64.2.dylib
-r--r--r--  1 chris  staff   4700120 Apr 17 15:42 libicui18n.a
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicui18n.dylib -> libicui18n.64.2.dylib
-r--r--r--  1 chris  staff     61280 May 31 14:04 libicuio.64.2.dylib
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuio.64.dylib -> libicuio.64.2.dylib
-r--r--r--  1 chris  staff     68744 Apr 17 15:42 libicuio.a
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuio.dylib -> libicuio.64.2.dylib
-rw-r--r--  1 chris  staff     67124 May 31 14:04 libicutest.64.2.dylib
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicutest.64.dylib -> libicutest.64.2.dylib
-r--r--r--  1 chris  staff     79432 Apr 17 15:42 libicutest.a
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicutest.dylib -> libicutest.64.2.dylib
-r--r--r--  1 chris  staff    174512 May 31 14:04 libicutu.64.2.dylib
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicutu.64.dylib -> libicutu.64.2.dylib
-r--r--r--  1 chris  staff    235368 Apr 17 15:42 libicutu.a
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicutu.dylib -> libicutu.64.2.dylib
-rw-r--r--  1 chris  staff   1578232 May 31 14:04 libicuuc.64.2.dylib
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuuc.64.dylib -> libicuuc.64.2.dylib
-r--r--r--  1 chris  staff   2498616 Apr 17 15:42 libicuuc.a
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuuc.dylib -> libicuuc.64.2.dylib
drwxr-xr-x  5 chris  staff       160 May 31 14:04 pkgconfig

person MarketHubb    schedule 31.05.2019    source источник
comment
Попробуйте brew link icu4c, возможно, при обновлении не были созданы какие-то символические ссылки.   -  person Styx    schedule 01.06.2019
comment
Спасибо @Styx, я обновил вопрос выводом этой команды   -  person MarketHubb    schedule 02.06.2019
comment
Извините, я забыл, что icu4c предназначен только для кег, поэтому он не связан с /usr/local. Покажите, пожалуйста, вывод ls -l /usr/local/opt/icu4c/lib/.   -  person Styx    schedule 02.06.2019
comment
@Styx - Я обновил вопрос выводом ls -l /usr/local/opt/icu4c/lib/   -  person MarketHubb    schedule 02.06.2019
comment
У меня аналогичная проблема (с графическим инструментом, а не с узлом, но я предполагаю, что это та же проблема). Однако мой ls -l /usr/local/opt/icu4c/lib/ показывает только файлы версии 51.1. Однако brew info icu4c говорит, что единственная установленная версия - 64.2. Есть догадки? Должен ли я начать новый вопрос вместо того, чтобы задавать его здесь?   -  person Aram Harrow    schedule 14.04.2020


Ответы (1)


Кажется, ваш icu4c был обновлен, но ваш php / node все еще относится к более старой версии.

Ты сможешь:

  1. Переустановите программное обеспечение, которое зависит от icu4c:

    brew uses --installed icu4c | xargs brew reinstall
    
  2. Переключитесь на старую версию icu4c:

    brew switch icu4c 61.2
    
person Styx    schedule 02.06.2019
comment
Я выбрал вариант №1, и это помогло. Спасибо @Styx - person MarketHubb; 03.06.2019
comment
Обратите внимание, что brew switch, вероятно, необходим, даже если у вас осталась только одна версия. Сама по себе переустановка не сработала, но switch сотворила чудо. Спасибо! - person Giacomo Lacava; 06.07.2019
comment
@GiacomoLacava Интересно. Вы перешли на старую версию icu4c или на новую? - person Styx; 06.07.2019
comment
Думаю, новый (64.2). Я знаю, что раньше у меня было 63. - person Giacomo Lacava; 08.07.2019