Homebrew 安装的两个 icu4c 版本

Two versions of icu4c installed by Homebrew

提问人:stevendesu 提问时间:7/25/2019 更新时间:7/6/2020 访问量:2704

问:

每当我尝试在Mac上运行时,我都会收到以下错误:npm --versionnode --version

$> node --version
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.63.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
Abort trap: 6

我发现这篇有用的 SO 帖子建议链接适当的版本,并解决了我的问题:

$> brew switch icu4c 63.1
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/63.1
Opt link created for /usr/local/Cellar/icu4c/63.1

但是,在这样做之后,PHP停止了工作:

$> tail /usr/local/var/log/php-fpm.log
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
  Referenced from: /usr/local/opt/php/sbin/php-fpm
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
  Referenced from: /usr/local/opt/php/sbin/php-fpm
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
  Referenced from: /usr/local/opt/php/sbin/php-fpm
  Reason: image not found

我发现这篇有用的 SO 帖子建议链接适当的版本,并解决了我的问题:

$> brew switch icu4c 64.2
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/63.1
Opt link created for /usr/local/Cellar/icu4c/64.2

但现在 NodeJS 又坏了!如何告诉 Homebrew 创建两个链接,一个用于 63.1,一个用于 64.2?或者有没有办法告诉 NodeJS 改用更新的 64.2?

PHP 节点.js macOS 自制软件 icu4c

评论

0赞 stevendesu 7/25/2019
如果有办法让 Homebrew 链接两个版本的库(它们链接到磁盘上的不同位置,所以应该可以),那么我仍然对解决方案感兴趣——但是我现在已经找到了解决我的问题的方法。我将 NodeJS 更新到 12.6.0 版,它使用更新的 icu4c 库。

答:

0赞 YvesLeBorg 7/6/2020 #1

摆脱 brew 的节点、npm 等......

然后像这样在您的用户帐户中安装 NVM。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

安装后,安装您梦想中的节点(例如)

nvm install v12    

它将安装 LTS 版本 12 及其 npm。

您还可以安装多个节点,并使用 nvm 轻松切换。

在这里阅读它。特别是关于设置一些出口。

最后,选择你选择的php。

pf :我还必须解决 brew *&^%@#* 与 mysql 的冲突,并从 Oracle 发行版安装硬 mysql。

评论

1赞 Petah 7/7/2020
寻找自制软件的解决方案,因为其他程序也会发生这种情况。
0赞 YvesLeBorg 7/7/2020
@Petah 好吧,我选择做我自己的事情,即不等待苹果、啤酒或其他任何人来修理他们的东西。nvm 的好处是,它通过我的管道传播到我所有环境中的各种操作系统和容器。
0赞 Wouter van Vegchel 11/6/2022
这不起作用,或者不再起作用