代码之家  ›  专栏  ›  技术社区  ›  petekaner

未加载dyld:library:/usr/local/opt/icu4c/lib/libicui18n.62.dylib在Mac上使用BREW安装节点后运行php时出错

  •  23
  • petekaner  · 技术社区  · 5 年前

    我使用homebrew(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,但问题仍然存在。

    6 回复  |  直到 5 年前
        1
  •  21
  •   Grey Black    5 年前

    在我的例子中,发生这种情况是因为ICU4C升级到63版,但是我在本地安装的Postgres映像仍然引用ICU4C 62.1。因此,我不得不更改使用的ICU4C版本:

     brew switch icu4c 62.1
    
        2
  •  11
  •   Arun Karnati    5 年前

    升级后我也有同样的问题 macOS 版本 10.13.6 . 我不能跑 composer php 命令。在研究了一段时间并尝试了在线发布的各种解决方案后,使用 homebrew 工作。

    brew reinstall php

        3
  •  7
  •   Leland    5 年前

    结果我,像@gray black一样,不得不安装icu4c的v62.1版本,其他的都没用。

    然而, brew switch icu4c 62.1 只有在过去安装了62.1的情况下才能工作。如果你没有的话,还有更多的腿活要做。自制酿 not make it easy to install 公式的早期版本。

    我是这样做的:

    1. 我们首先需要一个自制repo的深度克隆。这可能需要一段时间: git -C (brew --repo homebrew/core) fetch --unshallow
    2. brew log icu4c 追踪引用62.1的承诺; 575eb4b 做这个把戏。
    3. cd $(brew --repo homebrew/core)
    4. git checkout 575eb4b -- Formula/icu4c.rb
    5. brew uninstall --ignore-dependencies icu4c
    6. brew install icu4c 您现在应该有正确版本的依赖关系了!现在…
    7. git reset && git checkout . 清理修改过的配方。

    多亏了@noah的帮助,增加了一些额外的注释。

        4
  •  1
  •   user2294399    5 年前

    只是 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 )
    
        5
  •  1
  •   Full Stack Alien    5 年前

    我也遇到了同样的问题,我升级了自制啤酒,然后清理干净了。由于包版本不匹配,我可能会遇到此错误。以上的解决方案都没有解决我的错误。

    brew upgrade
    

    然后

    brew cleanup
    
        6
  •  0
  •   Jerry    5 年前

    而不是安装旧版本的 icu4c 旧的(预编译的)PHP可以链接到,最好重新编译旧的PHP以链接到最近的库。

    brew uninstall php@7.2
    brew install --build-from-source php@7.2
    

    这将构建PHP并将其链接到较新的库。我发现 reinstall 没有完全工作;当目标文件夹已经存在时,新安装被阻塞。

    我也这样做了 brew link --force php@7.2 为了我的环境。