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。