解决 dyld: Library not loaded icu4c
起因
brew
安装 npm
,安装完成后发现 PHP 用不了了,报错信息如下
定位问题
PHP7 依赖 61_1 版本的icu4c
,使用brew info icu4c
提示当前版本为 63。那么解决办法就来了
升级
php
到 7.3,但是这样会导致一堆 php 版本问题;或者将
icu4c
降级到 61_1 版本,但是这 node 就不能用了安装两个 icu4c,来回切换
这样看来,方案 3 最靠谱(实际上我被方案 1 坑了一波)~
解决问题
没有找到brew
直接安装多版本的icu4c
的方案,所以直接编译到 brew 的目录,然后用 brew 进行管理版本,本地的环境为 mac ios 10.15
找到需要的版本
官网地址,按需自取,例如我需要的是 611,对应的地址是http://download.icu-project.org/files/icu4c/61.1/icu4c-611-src.tgz
编译安装
版本切换
查看本机中已安装的 icu4c 版本
切换版本
------------------------------- 分割线:20210314--------------------------------
更新了 brew 以后,不能使用 brew switch 了。
解决办法是:
新建一个文件,命名为
brew-switch
添加内容
保存后
chmod +x brew-switch
增加执行权限。将文件放到
/usr/local/bin
内。
然后使用brew-switch
切换版本就可以了。
版权声明: 本文为 InfoQ 作者【一个大红包】的原创文章。
原文链接:【http://xie.infoq.cn/article/d73704c6e77c438052557610b】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论