我使用自制(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,但问题仍然存在


当前回答

在我的情况下,我重新安装与Homebrew安装的所有包

$ brew list | xargs brew reinstall

之后,我开始安装我需要的版本

其他回答

在最新的OS X更新后,似乎不可能使用brew链接icu4c。这让事情变得更有趣。我找到的唯一解决办法是:

下载并编译icu4c 62.1到/usr/local/icu4c/62.1

mkdir ~/sources
cd ~/sources
wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
tar xvzf icu4c-62_1-src.tgz
cd icu/source/

sudo mkdir /usr/local/icu4c/62.1
./configure --prefix=/usr/local/icu4c/62.1
make
sudo make install

链接库:

ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/

在~/.bash_profile中设置DYLD_LIBRARY_PATH:

export DYLD_LIBRARY_PATH=/usr/local/include

我只是想留下一个关于当前如何修复这个问题的详细总结(这对我来说很有效):

首先去本地安装自制软件

cd /usr/local/Homebrew/

Homebrew > 2.5删除了直接从git回购中安装公式的选项,所以我们需要签出一个旧版本

git checkout 2.3.0

安装icu4c版本(在我的情况下,64.2与php@7.1兼容)

HOMEBREW_NO_AUTO_UPDATE=1 brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb

回到当前版本的自制

git checkout -

告诉brew使用旧版本的icu4c,这样如果你已经安装了两个版本,你可以选择使用哪个版本

brew switch icu4c 64.2

这是最后对我有用的方法。

酿造重新安装postgres

运行上述命令后,您可能需要运行

酿造postgresql-upgrade-database

访问您以前的数据。

Brew update && Brew upgrade对我来说很有效

我看了这篇文章,这似乎是我所缺少的一块拼图:

brew uninstall node@8