我使用自制软件(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
我尝试同时卸载节点和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
我尝试同时卸载节点和icu4c,但问题仍然存在
我在这里关注了这篇文章,这似乎是我缺少的难题:
brew uninstall node@8
为了降级,我不得不从源代码重新编译(MacOS Mojave)
$ wget https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
$ tar xvfz icu4c-62_1-src.tgz
$ cd icu/sources
$ ./configure
$ make
$ make install
与其安装旧版本的icu4c
(预编译的)php可以链接的旧版本,不如重新编译旧版本的php以链接到更新的库,这更好。
brew uninstall php@7.2
brew install --build-from-source php@7.2
这将构建php并将其链接到更新的库。我发现reinstall
工作还不够。当目标文件夹已经存在时,新安装将停止。
我也brew link --force php@7.2
为我的环境而努力。
对我来说,brew reinstall nodejs
此问题已解决-我的问题是运行Elixir / Phoenix,而不是特定于PHP,我认为这是由引起的brew install postgres
,但是重新安装并没有帮助。我从npm
命令中得到它。
Leland的答案对我有用,但是我必须将步骤4和6更改为:
4)git checkout -B icu4c-62.1 575eb4b
6)brew重新安装Formula / icu4c.rb
我遇到了问题,因为我的PHP(7.3)版本期望的是icu4c 63,而brew仅安装64。
好像是不可能的链接icu4c
使用brew
最新的OS X更新后。这使事情变得更有趣。我发现对我有用的唯一解决方案:
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/
DYLD_LIBRARY_PATH
在~/.bash_profile
:export DYLD_LIBRARY_PATH=/usr/local/include
公正brew remove php
,brew install php
没有工作,也没有brew reinstall 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 )
brew update && brew upgrade
为我工作
这为我解决了:
brew upgrade node
在MacOS Mojave上,唯一可以解决的方法是 brew upgrade
注意 -这将升级您的PHP版本。
我只是有同样的问题。升级Homebrew然后进行清理对我有用。由于软件包版本不匹配,此错误可能对我显示。上面的解决方案都不能解决我的错误,但是运行以下自制程序命令可以解决。
brew upgrade
注意 -这将升级您的所有冲煮包装。如果只想升级特定的软件包,请确保特定。
brew upgrade // for upgrading all packages -- this is the command I used
brew upgrade {package} // for upgrading a specific package
接着
brew cleanup
运行npm version
,看看是否看到相同的错误。
如果是这样,请升级您的节点版本brew upgrade 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
原来,我像@Grey Black一样,必须实际安装icu4c的v62.1。没有其他工作。
但是,brew switch icu4c 62.1
仅当您以前安装62.1时才有效。如果没有,则涉及更多的腿部工作。Homebrew 使得安装以前版本的公式变得不容易。
这是我的操作方式:
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
跟踪引用62.1的提交;575eb4b
绝招。cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
您现在应该具有正确版本的依赖项!现在只是...git reset && git checkout .
清理修改后的配方。就我而言,这是因为将icu4c升级到了版本63,但我在本地安装的postgres映像仍引用了icu4c 62.1。因此,我不得不更改使用的icu4c版本:
brew info icu4c
brew switch icu4c <version>
version
所返回的安装版本在哪里?info
升级macOS
到version 后,我遇到了同样的问题10.13.6
。我无法运行composer
和php
命令。经过一段时间的研究并尝试了各种在线发布的解决方案,然后重新安装php homebrew
。
brew reinstall php@7.1
根据Ryan的评论于3月14日添加
通过运行php -v
获取当前正在使用的版本,并获取正确的公式(可以在此处找到:https : //formulae.brew.sh/formula/php)以替换@7.1
上面的命令。
实际上,令我惊讶的是该解决方案尚未提出,我觉得这是最简单的解决方案。
去GitHub上,找到的版本匹配的brewfile的版本icu4c
,你需要和获取文件的原始版本(按照上面的链接,点击View File
然后Raw
)。
然后只需从该URL重新安装brew。
例如,version 62.1
:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
在安装php 7.3之后也遇到了此错误。我已经解决了升级我的旧php版本(5.6和7.0,不是来自官方仓库)的问题。
维护人员已针对当前的icu4c编译了新的php版本。
就我而言,PHP 7从0.31升至0.33,问题得以解决。