我使用自制软件(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,但问题仍然存在
Answers:
注意 -这将升级您的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
brew upgrade
将升级您所有酿造的过时软件包,相反,可能只会升级或升级brew upgrade npm
特定软件包,而不是全部。
就我而言,这是因为将icu4c升级到了版本63,但我本地安装的postgres映像仍引用了icu4c 62.1。因此,我不得不更改使用的icu4c版本:
brew info icu4c
brew switch icu4c <version>
version
所返回的安装版本在哪里?info
brew list icu4c
显示了来自的文件/usr/local/Cellar/icu4c/63.1
。 brew switch icu4c 63.1
为我修复它。
brew switch icu4c 63.1
但是即使重新启动postgres之后,日志中仍然出现相同的错误。不确定下一步该怎么做...
brew reinstall postgres
,这似乎解决了我的问题
icu4c 61.1
。63.1
-不解决。62.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
例如,version 64.2
:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew switch icu4c 62.1
对您不起作用,那么这实际上是最好的解决方案。
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
此命令,请修复以下错误:brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
原来,我像@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 .
清理修改后的配方。brew log icu4c
,只有3-4个结果。没有提及62.1。您在上面使用的哈希也不起作用。他们删除了62吗?
git -C (brew --repo homebrew/core) fetch --unshallow
确保具有完整的酿造git历史记录。
icu4c
。更新,升级brew都行不通,也没有重新安装,重新链接,从源代码构建php。
git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb
brew switch 63.1
升级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
上面的命令。
node
在将macOS升级到之后10.14.2
,我也遇到了同样的错误,brew reinstall node
这对我也同样适用
brew upgrade
为我修复它。
brew reinstall php
可能最终会安装与当前版本不同的版本。您可能需要使用php@7.1
php -v
如果您的PHP损坏,则无法通过运行获取当前版本:p
echo $PATH
(如果有的话php
,应该会看到类似以下内容:),/usr/local/opt/php@7.2/bin
这是找出当前使用的版本的一种方法。
运行npm version
,看看是否看到相同的错误。
如果是这样,请升级您的npm版本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
这为我解决了:
brew upgrade node
好像是不可能的链接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 update && brew upgrade
为我工作
这终于对我有用。
brew reinstall postgres
运行以上命令后,您可能需要运行
brew postgresql-upgrade-database
访问您以前的数据。
在安装php 7.3之后也遇到了此错误。我解决了仅升级我的旧php版本(5.6和7.0,而不是来自官方回购协议)的问题。
维护人员已针对当前的icu4c编译了新的php版本。
就我而言,PHP 7从0.31升至0.33,问题得以解决。
就我而言,我会重新安装所有用Homebrew安装的软件包
$ brew list | xargs brew reinstall
之后,我开始安装所需的版本