Mac 执行node、php命令报错:/usr/local/opt/icu4c/lib/libicui18n.70.dylib‘ (no such file)

1.详细错误信息

/usr/local/opt/php@7.2/bin/php -v                
dyld[49280]: Library not loaded: '/usr/local/opt/icu4c/lib/libicui18n.70.dylib'
  Referenced from: '/usr/local/Cellar/php@7.2/7.2.34_4/bin/php'
  Reason: tried: '/usr/local/opt/icu4c/lib/libicui18n.70.dylib' (no such file), '/usr/local/lib/libicui18n.70.dylib' (no such file), '/usr/lib/libicui18n.70.dylib' (no such file), '/usr/local/Cellar/icu4c/72.1/lib/libicui18n.70.dylib' (no such file), '/usr/local/lib/libicui18n.70.dylib' (no such file), '/usr/lib/libicui18n.70.dylib' (no such file)
[1]    49280 abort      /usr/local/opt/php@7.2/bin/php -v

2.错误原因

出现这个错误是因为brew更新,导致库文件也被更新,之前安装的语言环境还是指向老的库版本文件,因此报错。但是老的库文件有的还在,可以找到老的库文件放到对应的目录下即可。

3.解决办法

  1. 找到老的库文件放到对应的目录下即可。
  2. 卸载之前的语言,使用最新版本(推荐)
    > brew uninstall php@7.4
    # 这里卸载老的语言版本后,可以去手动删除一下老的配置文件
    > cd /opt/homebrew/etc/php/
    > rm -rf {版本号}
    > brew install php
    

4.可能遇到的文件

我在使用方法1解决问题的时候,不小心将lib下的.dylib文件删除了,最后的解决办法是重新安装icu4c,就可以恢复之前库的文件。

4.1 安装方式如下

> brew reinstall icu4c