【问题标题】:Library not loaded error after brew install php56brew install php56 后库未加载错误
【发布时间】:2015-03-09 21:06:16
【问题描述】:

我正在使用自制软件在 OSX Mavericks 上从 php5.5 升级到 php5.6。我跑

brew install php56

一切运行正常,但是当我运行php -v 时出现以下错误

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.53.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Trace/BPT trap: 5

我该如何解决这个问题?

【问题讨论】:

    标签: macos homebrew php-5.6


    【解决方案1】:

    试试这个

    brew uninstall --ignore-dependencies node icu4c
    brew install node
    

    【讨论】:

    • 这适用于我的问题。我添加了一个 --force 来删除所有历史安装。 brew uninstall --ignore-dependencies --force node icu4c
    • 这很棒。在我安装 Inkscape 后,我遇到了这个问题,所以与 php56 相关的解决方案对我来说似乎有点离谱。这运行迅速且无痛。
    • 已经两次拯救了我的一天,现在!这次是由于 brew-installing ffmpeg(在 brew update 之后)。感谢这个最小的解决方案。在运行此之前,请注意记下您现有的 Node 版本,以防您想重新安装相同版本而不是最新版本。
    【解决方案2】:

    对我来说,简单地升级 php 就有帮助。

    brew upgrade php
    

    对应的文件dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.<version>.dylib 不存在,而是一个更新的文件。所以我的 php 版本与升级它们时可能升级 icu4c 的其他依赖项相比有点落后。 (节点还是 postgresql?)

    【讨论】:

      【解决方案3】:

      就我而言,这是以前安装的符号链接问题。运行后一切正常

      brew link --overwrite php56
      

      P.S. 在使用 --overwrite 运行之前,请尝试不使用。如果您像我一样收到以下错误,请继续。

      Linking /usr/local/Cellar/php56/5.6.3...
      Error: Could not symlink bin/pear
      Target /usr/local/bin/pear
      is a symlink belonging to php55. You can unlink it:
        brew unlink php55
      
      To force the link and overwrite all conflicting files:
        brew link --overwrite php56
      
      To list all files that would be deleted:
        brew link --overwrite --dry-run php56
      

      【讨论】:

        【解决方案4】:

        以前的解决方案不起作用:

        $ php -i
        dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.55.dylib
          Referenced from: /usr/local/bin/php
          Reason: image not found
        Trace/BPT trap: 5
        

        解决了:

        $ brew update && brew upgrade icu4c
        

        https://github.com/Homebrew/homebrew-php/issues/1701

        【讨论】:

          【解决方案5】:

          dyld:库未加载:/usr/local/opt/icu4c/lib/libicui18n.53.dylib

          这听起来像是icu4c 的问题。所以试试:

          brew uninstall icu4c && brew install icu4c
          brew unlink icu4c && brew link icu4c --force
          

          如果有其他问题,请通过brew doctor 进行调查。

          【讨论】:

          • 错误:拒绝卸载 /usr/local/Cellar/icu4c/61.1
          【解决方案6】:

          要为我解决这个问题(小牛队 10.9.5),需要 in this GitHub issue 描述的整个例程,即:

          brew uninstall --force php56
          
          brew update
          
          brew tap --repair
          
          find $(brew --cache) -mindepth 1 -print -delete
          
          brew install -v php56
          

          (在我的情况下,我也需要brew install php56-mcrypt,因为它丢失了。)

          我之前安装过 PHP 5.4 和 5.6,其中 5.4 是活动的(“已链接”)——我想切换。我已经安装了php-switcher 包,这是一种让您执行此操作的非常巧妙的方法,但在上述过程之前它不起作用。

          【讨论】:

          • 什么 abot --enable-opcache,你也会想要的
          • 第四步删除了我的 /Applications 目录中的所有文件
          • @daleyjem 我已将其替换为更安全的版本(请参阅 GitHub 页面)。问题是,如果您输入错误 brew --cache(它会为您提供下载缓存的位置),它将找不到目录,但无论如何都会继续执行 rm...
          【解决方案7】:
          brew uninstall --ignore-dependencies node icu4c
          brew install node
          

          为我工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-07-24
            • 1970-01-01
            • 1970-01-01
            • 2021-10-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多