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.解决办法
- 找到老的库文件放到对应的目录下即可。
- 卸载之前的语言,使用最新版本(推荐)
> 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