【问题标题】:How to fix missing library after update and upgrade of Homebrew如何在 Homebrew 更新和升级后修复丢失的库
【发布时间】:2019-05-31 18:25:13
【问题描述】:

我决定在星期五下午更新和升级 Homebrew(因为为什么不这样做),它似乎导致缺​​少库,这影响了我运行几乎所有东西(PHP、Laravel Valet、Node 等)的能力...... ) 每个错误消息都是相同的,所以我希望这是一个简单的修复,但我不确定从哪里开始。

Chriss-MacBook-Pro-2:~ chris$ node --version
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
Abort trap: 6
Chriss-MacBook-Pro-2:~ chris$ valet
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Password:
Sorry, try again.
Password:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
/usr/local/bin/valet: line 54:   729 Abort trap: 6           php "$DIR/cli/valet.php" "$@"
Chriss-MacBook-Pro-2:~ chris$ php --version
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Abort trap: 6

他们似乎都在寻找/usr/local/opt/icu4c/lib/libicui18n.61.dylib中的图书馆

** 编辑 **

我运行了 Styx 建议的 brew 命令,输出如下:

Chriss-MacBook-Pro-2:~ chris$  brew link icu4c
Warning: Refusing to link macOS-provided software: icu4c
If you need to have icu4c first in your PATH run:
  echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
  echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile

For compilers to find icu4c you may need to set:
  export LDFLAGS="-L/usr/local/opt/icu4c/lib"
  export CPPFLAGS="-I/usr/local/opt/icu4c/include"

icu4c 添加到我的路径很容易,但我不确定如何处理要求我设置的第二部分

** 更新**

这是运行ls -l /usr/local/opt/icu4c/lib/的输出

total 131128
drwxr-xr-x  6 chris  staff       192 Apr 17 15:42 icu
-rw-r--r--  1 chris  staff  27537504 May 31 14:04 libicudata.64.2.dylib
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicudata.64.dylib -> libicudata.64.2.dylib
-r--r--r--  1 chris  staff  27532496 Apr 17 15:42 libicudata.a
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicudata.dylib -> libicudata.64.2.dylib
-r--r--r--  1 chris  staff   2578452 May 31 14:04 libicui18n.64.2.dylib
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicui18n.64.dylib -> libicui18n.64.2.dylib
-r--r--r--  1 chris  staff   4700120 Apr 17 15:42 libicui18n.a
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicui18n.dylib -> libicui18n.64.2.dylib
-r--r--r--  1 chris  staff     61280 May 31 14:04 libicuio.64.2.dylib
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuio.64.dylib -> libicuio.64.2.dylib
-r--r--r--  1 chris  staff     68744 Apr 17 15:42 libicuio.a
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuio.dylib -> libicuio.64.2.dylib
-rw-r--r--  1 chris  staff     67124 May 31 14:04 libicutest.64.2.dylib
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicutest.64.dylib -> libicutest.64.2.dylib
-r--r--r--  1 chris  staff     79432 Apr 17 15:42 libicutest.a
lrwxr-xr-x  1 chris  staff        21 Apr 17 15:42 libicutest.dylib -> libicutest.64.2.dylib
-r--r--r--  1 chris  staff    174512 May 31 14:04 libicutu.64.2.dylib
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicutu.64.dylib -> libicutu.64.2.dylib
-r--r--r--  1 chris  staff    235368 Apr 17 15:42 libicutu.a
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicutu.dylib -> libicutu.64.2.dylib
-rw-r--r--  1 chris  staff   1578232 May 31 14:04 libicuuc.64.2.dylib
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuuc.64.dylib -> libicuuc.64.2.dylib
-r--r--r--  1 chris  staff   2498616 Apr 17 15:42 libicuuc.a
lrwxr-xr-x  1 chris  staff        19 Apr 17 15:42 libicuuc.dylib -> libicuuc.64.2.dylib
drwxr-xr-x  5 chris  staff       160 May 31 14:04 pkgconfig

【问题讨论】:

  • 试试brew link icu4c,也许更新时没有创建一些符号链接。
  • 感谢@Styx,我用该命令的输出更新了问题
  • 抱歉,我忘记了 icu4c 仅限于小桶,因此它没有链接到 /usr/local。请显示ls -l /usr/local/opt/icu4c/lib/ 的输出。
  • @Styx - 我用ls -l /usr/local/opt/icu4c/lib/的输出更新了问题
  • 我有一个类似的问题(图形工具不是节点,但我猜这是同一个问题)。但是,我的 ls -l /usr/local/opt/icu4c/lib/ 只显示版本 51.1 文件。但是,brew info icu4c 表示唯一安装的版本是 64.2。有什么猜测吗?我应该开始一个新问题而不是在这里提问吗?

标签: node.js laravel homebrew laravel-valet


【解决方案1】:

你的icu4c好像已经升级了,但是你的php/node仍然是旧版本。

你可以:

  1. 重装依赖icu4c的软件:

    brew uses --installed icu4c | xargs brew reinstall
    
  2. 切换到使用旧版本的icu4c

    brew switch icu4c 61.2
    

【讨论】:

  • 我选择了选项 #1,并且成功了。谢谢@Styx
  • 请注意,brew switch 可能是必要的,即使您只剩下一个版本。单独重新安装对我不起作用,但switch 发挥了作用。谢谢!
  • @GiacomoLacava 有趣。您是切换到旧版本的 icu4c 还是新版本?
  • 我认为这是新的(64.2)。我知道我以前有一个 63 号。
猜你喜欢
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
相关资源
最近更新 更多