我使用自制(Mojave)安装节点,之后php停止工作,如果我尝试运行php -v,我会得到这个错误:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
我尝试卸载node和icu4c,但问题仍然存在
我使用自制(Mojave)安装节点,之后php停止工作,如果我尝试运行php -v,我会得到这个错误:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
我尝试卸载node和icu4c,但问题仍然存在
当前回答
更新-正如在一些评论中所述,运行brew cleanup可能会修复此错误,如果这本身无法修复它,您可以尝试升级单个包或所有的brew包。
我也有同样的问题。升级Homebrew然后清理对我来说很有效。这个错误可能是由于包版本不匹配造成的。上面的解决方案都不能解决我的错误,但是运行下面的自制程序命令可以。
注意:这将升级你所有的酿造包,包括但不限于PHP。如果你只想升级特定的包,请确保是特定的。
brew upgrade icu4c
brew upgrade // or upgrade all packages
最后
brew cleanup
其他回答
我通过更新所有R包来解决int:
update.packages(checkBuilt = TRUE, ask = FALSE)
Leland的答案对我来说很管用,但我不得不把第4步和第6步改为:
4) git checkout -B icu4c-62.1 575eb4b
6) brew重装Formula/icu4c.rb
只是brew remove php和brew install php不工作,也没有brew重装php。 我的解决方案是:
brew remove php
cd /usr/local/Cellar
rm -rf php/
brew install php
brew doctor
brew cleanup
现在php -v给出了:
PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )
与其安装旧版本的icu4c,让旧的(预编译的)php可以链接到它,不如重新编译旧的php以链接到最新的库。
brew uninstall php@7.2
brew install --build-from-source php@7.2
这将构建php并将其链接到更新的库。我发现重新安装不太管用;当目标文件夹已经存在时,新的安装阻塞。
我还为我的环境做了brew link -force php@7.2。
运行npm version,如果你看到同样的错误,升级npm。
酿造升级npm。
==> Upgrading 1 outdated package, with result:
npm 8.1.2 -> 10.3.0
==> Upgrading npm
==> Installing dependencies for node: icu4c
==> Installing node dependency: icu4c
学分