【发布时间】:2020-02-08 15:05:23
【问题描述】:
我正在尝试使用 Homebrew 安装 PHP 7.1。
根据 Homebrew 网站,我应该输入
brew install exolnet/deprecated/php@7.1
我得到的只是
configure: error: Please reinstall the iconv library.
重新安装没有帮助。当前版本 libiconv 是 1.16。
如何解决这个错误?
【问题讨论】:
我正在尝试使用 Homebrew 安装 PHP 7.1。
根据 Homebrew 网站,我应该输入
brew install exolnet/deprecated/php@7.1
我得到的只是
configure: error: Please reinstall the iconv library.
重新安装没有帮助。当前版本 libiconv 是 1.16。
如何解决这个错误?
【问题讨论】:
Icu4c 重新安装让我强制重新安装 PHP8,这破坏了我的目的。所以,我找到了一些新的存储库,您根本不需要为这些 icu4c 东西烦恼:
brew install shivammathur/php/php@5.6
brew install shivammathur/php/php@7.0
brew install shivammathur/php/php@7.1
brew install shivammathur/php/php@7.2
brew install shivammathur/php/php@7.3
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0
brew install shivammathur/php/php@8.1
首先,使用brew uninstall "php*" 和brew unlink php@7.1 之类的命令删除所有php 安装
您可能还需要untap 其他水龙头。我不得不跑
brew untap exolnet/deprecated
正确安装。
然后,如果需要,删除 /usr/local/etc/php 文件夹
然后安装我上面链接的软件包之一。
在 PHP 7.1 上运行良好:
➜ ~ php -v
PHP 7.1.33 (cli) (built: Dec 1 2020 01:14:43) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.33, Copyright (c) 1999-2018, by Zend Technologies
您还可以使用以下命令在 php 版本之间快速切换:
brew unlink php && brew link --overwrite --force php@7.2
等等
GitHub 存储库:https://github.com/shivammathur/homebrew-php
我找到这些包的来源:here。
【讨论】:
这在 Big Sur 上对我有用:
brew tap shivammathur/homebrew-php
brew install shivammathur/php/php@7.1
【讨论】:
试试下面的
brew install openldap libiconv
brew tap exolnet/homebrew-deprecated
brew install php@7.1
有关更多详细信息,请查看本指南
https://getgrav.org/blog/macos-catalina-apache-multiple-php-versions
【讨论】:
我对此有疑问:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/Cellar/php@7.1/7.1.33/bin/php
Reason: image not found
我的解决方案是先手动下载https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb(因为安装公式直接呈现错误Calling Installation of icu4c from a GitHub commit URL is disabled!)然后:
$ brew reinstall icu4c.rb
接下来,将旧版 icu4c 中的 .dylib 文件复制到临时位置:
$ mkdir ~/temp
$ cp /usr/local/Cellar/icu4c/64.4/lib/*.dylib ~/temp
然后,重新安装icu4c:
$ brew reinstall icu4c
运行 php 7.1 并将每个必要的 .dylib 文件复制回您当前的 icu4c lib 文件夹,直到 php 7.1 没有错误为止。
【讨论】: