我使用自制软件(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,但问题仍然存在
答案 0 :(得分:141)
在我的情况下,因为icu4c已升级到版本63,但我在本地安装的postgres映像仍引用了icu4c 62.1。因此,我不得不更改所使用的icu4c版本:
brew switch icu4c 62.1
答案 1 :(得分:128)
注意-这将升级您的PHP版本。
我也有同样的问题。升级Homebrew然后进行清理对我有用。由于软件包版本不匹配,此错误可能对我显示。上述解决方案均不能解决我的错误。
brew upgrade
然后
brew cleanup
答案 2 :(得分:35)
原来,我像@Grey Black一样,必须实际安装icu4c的v62.1。什么都没用。
但是,brew switch icu4c 62.1
仅在过去安装62.1时有效。如果您还没有的话,那么还会涉及更多的立法工作。自制软件会not make it easy to install使用较早版本的公式。
这是我的做法:
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 .
清理修改后的食谱。感谢@Noah的帮助,添加了一些额外的笔记
答案 3 :(得分:24)
将>>> import numpy as np
>>> np.array(list(map(np.datetime64,['2017', '2018'])))
array(['2017', '2018'], dtype='datetime64[Y]')
升级到版本macOS
之后,我遇到了同样的问题。我无法运行10.13.6
和composer
命令。经过一段时间的研究并尝试了在线发布的各种解决方案之后,使用php
重新安装php的工作开始了。
homebrew
根据Ryan的评论于3月14日添加
通过运行brew reinstall php@7.1
获得当前正在使用的版本,并获取正确的公式(您可以在此处找到https://formulae.brew.sh/formula/php)来替换上述命令中的php -v
。
答案 4 :(得分:11)
这对我来说是固定的:
brew upgrade node
答案 5 :(得分:4)
运行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
答案 6 :(得分:3)
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 )
答案 7 :(得分:3)
我实际上尝试了本文中提到的所有有意义的解决方案,但是在运行php -v
或composer
时仍然遇到相同的错误。
节点版本很好,npm以及安装正确版本都没有问题,它们都在运行。
运行reinstall php@7.1
只会引发错误。
最后,我不得不运行:
brew reinstall icu4c
这基本上有效,我必须手动安装php依赖项,例如imagick.so
,imap.so
由于这些库是为不再维护的项目安装的,因此我可以不用它们。但是,如果您确实有依赖关系,请记住,之后还会有更多工作要做。
答案 8 :(得分:3)
这终于对我有用。
brew reinstall postgres
运行上述命令后,您可能需要运行
brew postgresql-upgrade-database
访问您以前的数据。
答案 9 :(得分:2)
brew update && brew upgrade
为我工作
答案 10 :(得分:2)
经过多年处理这个问题,以下出乎意料地简单的解决方案对我有用:
最新版本:https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
brew reinstall icu4c.rb
来源:https://gist.github.com/hgrimelid/703691ab48c4a4d0537cfe835b4d55a6
答案 11 :(得分:2)
我的问题:
# npm install -g canvas
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/opt/node@8/bin/node
Reason: image not found
现在是 20210118,经过多次尝试:
...
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
brew upgrade npm
brew install node
brew uninstall --ignore-dependencies node@8 icu4c
brew install icu4c
...
最终可行的解决方案是:
brew reinstall npm
答案 12 :(得分:2)
在MacOS Mojave上,我可以解决的唯一方法是使用brew upgrade
答案 13 :(得分:1)
对于我brew reinstall nodejs
来说,此问题已解决-我的问题是运行Elixir / Phoenix,而不是特定于PHP,我认为这是由brew install postgres
引起的,但是重新安装并没有帮助。我是从npm
命令中得到的。
答案 14 :(得分:1)
我紧跟着这篇文章here,对我来说,这似乎是迷失的一部分:
brew uninstall node@8
答案 15 :(得分:1)
在运行xcode-select --install
的OSX 10.15.4上,此问题已为我解决。
答案 16 :(得分:1)
在最新的OS X更新之后,似乎无法使用icu4c
链接brew
。这使事情变得更有趣。我发现对我有用的唯一解决方案:
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
希望它可以节省您几个小时的时间。
答案 17 :(得分:1)
在我的情况下,brew将icu4c更新到版本67.1,因此我的php7.1无法正常工作。 只需重新安装icu4c,就可以了。
答案 18 :(得分:1)
为了降级,我不得不从源码(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
答案 19 :(得分:0)
我在这里尝试了很多建议,最后brew upgrade php
是我的诀窍,但问题似乎无处不在
答案 20 :(得分:0)
如果您拥有最新的 icu4c
版本并且像我一样遭受脆弱软件的困扰,并且只想让 postgres
/whatever 正常工作:
$ brew upgrade icu4c
Warning: icu4c 69.1 already installed
然后你可以制作符号链接:
> dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuuc.68.dylib
cd /usr/local/opt/icu4c/lib
ln -s libicuuc.69.1.dylib libicuuc.68.dylib
ln -s libicuio.69.1.dylib libicui18n.68.dylib
这些符号链接将在您第一次更新 icu4c
时消失,但这可能是最快的修复方法。
答案 21 :(得分:0)
其实我直接在homebrew页面找到了解决方法:https://docs.brew.sh/Common-Issues
升级 macOS 可能会导致如下错误:
xcode-select --install
brew upgrade
就我而言,问题与升级操作系统无关,但解决方案效果很好。
答案 22 :(得分:0)
与其安装一个旧版本的icu4c
而不是旧版本的(预编译的)php可以链接到它,不如重新编译旧版本的php以链接到一个更新的库,则更好。
brew uninstall php@7.2
brew install --build-from-source php@7.2
这将构建php并将其链接到较新的库。我发现reinstall
不太有效;当目标文件夹已经存在时,新安装就停止了。
我也为自己的环境做了brew link --force php@7.2
。
答案 23 :(得分:0)
我通过更新所有 R 包解决了 int 问题:
update.packages(checkBuilt = TRUE, ask = FALSE)
答案 24 :(得分:0)
我只想留下当前如何解决此问题的详细摘要(这对我有用):
首先转到本地安装的自制软件
cd /usr/local/Homebrew/
Homebrew> 2.5删除了直接从git repos安装公式的选项,因此我们需要签出较旧的版本
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的旧版本,如果两者都安装,则可以选择使用wich版本。
brew switch icu4c 64.2
答案 25 :(得分:0)
Leland的答案对我有用,但是我不得不将步骤4和6更改为:
4)git checkout -B icu4c-62.1 575eb4b
6)brew重新安装Formula / icu4c.rb
答案 26 :(得分:0)
对我来说,它正在安装具有所需版本的icu4c。
如果您需要安装旧版本(如版本62)(其他版本的安装步骤相同),则需要:
https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
https://raw.githubusercontent.com/Homebrew/homebrew-core/88b9cc789820f2f544d8d4a1053eebb044c2926c/Formula/icu4c.rb
brew tap [yourUsername]/homebrew-versions
brew install [yourUsername]/homebrew-versions/icu4c
[yourUsername]是您的GitHub帐户或已经拥有所需版本Tap的人员的名称。
不幸的是,最新的自制软件不再提供警告,现在 显示错误:错误:从GitHub调用XXX安装 提交网址已禁用!使用'brew extract XXX'稳定在GitHub上的点击 代替。所以现在要走的方法是在github上创建一个名为 homebrew-versions可以在Tap中托管公式,然后对其进行初始化 使用:git克隆后酿造新的MYORG / homebrew-versions 如Shine Hugh所建议的自制回购,请复制粘贴原始红宝石文件 您的新配方。当心有趣的命名约定!示例:文件 名称是:gettext@0.20.2.rb类名称是:GettextAT0202示例: https://github.com/nedap/homebrew-versions
来源:https://itnext.io/how-to-install-an-older-brew-package-add141e58d32
答案 27 :(得分:0)
就我而言,由于我仍然维护PHP 5.6项目(使用旧的icu4c 64.2),因此必须在两个版本的icu4c之间切换。通过原始.rb链接进行brew安装和重新安装总是会出于某些原因替换以前安装的版本。
#fetching 64.2
brew fetch https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
#fetching stable version
brew fetch https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
cd $(brew --cache)/downloads
tar xvfz e2a83648f37dc5193016ce14fa6faeb97460258b214e805b1d7ce8956e83c1a7--icu4c-64.2.catalina.bottle.tar.gz
tar xvfz e045a709e2e21df31e66144a637f0c77dfc154f60183c89e6b04afa2fbda28ba--icu4c-67.1.catalina.bottle.tar.gz
mv -n icu4c/67.1 $(brew --cellar)/icu4c/
mv -n icu4c/64.2 $(brew --cellar)/icu4c/
然后在版本之间切换
$ brew switch icu4c 64.2
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/67.1
Opt link created for /usr/local/Cellar/icu4c/64.2
$ brew switch icu4c 67.1
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/67.1
Opt link created for /usr/local/Cellar/icu4c/67.1
答案 28 :(得分:0)
this gist中的解决方案为我做到了
brew uninstall --ignore-dependencies node icu4c
brew install node
答案 29 :(得分:0)
在安装php 7.3之后也遇到了此错误。我已解决了仅升级旧php版本(5.6和7.0,不是从官方存储库中升级)的问题。
维护人员已针对当前的icu4c编译了新的php版本。
就我而言,PHP 7从0.31升至0.33,问题得以解决。
答案 30 :(得分:0)
我真的很惊讶尚未提出该解决方案,我觉得这是最简单的解决方案。
转到GitHub,找到与所需icu4c
版本匹配的brewfile版本,并获取文件的原始版本(按照上面的链接,依次单击View File
和{{1 }}。
然后只需从该URL重新安装brew。
例如,版本Raw
:
62.1
答案 31 :(得分:0)
我遇到了问题,因为我的PHP(7.3)版本期望的是icu4c 63,而brew仅能安装64。
答案 32 :(得分:-1)
对于我来说,我会重新安装所有用Homebrew安装的软件包
$ brew list | xargs brew reinstall
然后,我开始安装所需的版本