解决dyld: Library not loaded icu4c
起因
brew
安装 npm
,安装完成后发现php
用不了了,报错信息如下
1 | dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61_1.dylib |
定位问题
PHP7依赖61_1
版本的icu4c
,使用brew info icu4c
提示当前版本为63。那么解决办法就来了
- 升级
php
到7.3
,但是这样会导致一堆php
版本问题; - 或者将
icu4c
降级到61_1
版本,但是这node
就不能用了 - 安装两个
icu4c
,来回切换
这样看来,方案3最靠谱~
解决问题
没有找到brew
直接安装多版本的icu4c
的方案,所以直接编译到brew的目录,然后用brew进行管理版本,本地的环境为mac ios 10.15
找到需要的版本
官网地址,按需自取,例如我需要的是61_1,对应的地址是http://download.icu-project.org/files/icu4c/61.1/icu4c-61_1-src.tgz
编译安装
1 | mkdir ~/sources |
版本切换
查看本机中已安装的icu4c版本
1 | brew info icu4c |
切换版本
1 | brew switch icu4c 61.1 |
后记
其实被方案1给坑了,刚开始没在意,发生问题就直接搜索,想要直接站在巨人的肩膀上,结果需要执行brew upgrade php
然后就有各种php版本的问题。。下篇说说phpbrew
管理多版本php
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 观道君的小站!
评论