Homebrew是Mac OS X操作系统的包管理器,类似于Linux上的APT或者yum。它可以方便的安装和管理实用工具和开发环境,使得开发者可以更加高效的进行开发。然而在使用Homebrew的过程中,有时候会需要删除一些已经安装的包,比如我们今天要聊的话题:如何从Homebrew中删除PHP。
首先,我们需要了解Homebrew中的PHP程序都安装在哪里。在终端中输入以下命令:
brew info php
会输出如下信息:
php: stable 7.4.1 (bottled), HEAD
General-purpose scripting language
https://www.php.net/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/php.rb
[…]
==>Dependencies
Build: autoconf ✔, automake ✔, libtool ✔, openssl@1.1 ✔, pkg-config ✔
Required: httpd ✘
[…]
==>Options
--HEAD
Install HEAD version
[…]
我们可以看到,输出信息中最后一行显示了PHP源码包的位置,也就是Homebrew使用的默认安装路径:/usr/local/Cellar/php/7.4.1_1/。
接下来,我们先通过以下命令删除我们想要删除的PHP版本:
brew uninstall php@7.4
然而仅仅使用这条命令是不够的,因为有可能在执行这条命令的时候,Homebrew还会提示你需要安装一些其他的包或者升级你的系统库。例如:
Error: Refusing to uninstall /usr/local/Cellar/php/7.4.1_1
because it is required by httpd, mariadb and phpmyadmin.
Use ‘brew to uninstall’ to force removal.
根据提示,我们需要使用Homebrew提供的"brew to uninstall"来强制删除。使用如下命令即可:
brew to uninstall --force php@7.4
当然,这条命令也并不总是有效的。如果Homebrew发现PHP被其他软件所依赖,那么它依旧会拒绝删除PHP包,提示类似这样的错误信息:
Error: Refusing to uninstall /usr/local/Cellar/php/7.4.1_1
because it is required by:
httpd ->httpd24 (dependency required by httpd)
httpd ->php@7.4 (dependency required by httpd)
在这种情况下,我们需要先删除依赖PHP的软件,然后再执行"brew to uninstall"命令来强制删除PHP。比如,我们可以先卸载httpd,并清除它的配置文件:
sudo apachectl stop
brew uninstall httpd
rm -rf /usr/local/etc/httpd
然后再次执行:
brew to uninstall --force php@7.4
这样,我们就成功地从Homebrew中删除了PHP。