macOS下Homebrew中php@7.1与php71的区别是什么?
php@7.1 vs php71 in Homebrew (macOS)
先给你吃个定心丸:php71和php@7.1本质上是同一个PHP 7.1版本,核心功能完全没区别,差异全在Homebrew的包管理规则和分发方式上,具体来说有这几点:
1. 命名规范的统一调整
Homebrew后来给旧版本软件定了统一的命名规矩——用[软件名]@[版本号]的格式标记那些已经不再是当前主流支持的版本。之前的php71是早年的旧命名,改成php@7.1就是为了跟上这个新规范:比如现在最新的稳定版PHP直接叫php,所有旧版本(像7.1、7.4这类)都统一用php@x.x的格式来区分。
2. 所属的Tap不同
- 旧的
php71属于已经被废弃归档的homebrew/php第三方Tap,当年要装它得先跑brew tap homebrew/php添加上这个Tap; - 新的
php@7.1属于Homebrew官方的Core Tap,不用额外加Tap,直接敲brew install php@7.1就能装。
3. 扩展包的管理逻辑变了
你升级时看到的那些被删除的php71-gmp、php71-mcrypt这类扩展包,都是原来homebrew/php Tap里单独分发的。现在Homebrew Core里的php@7.1改了扩展的玩法:
- 不少常用扩展已经默认编译进PHP里了,不用单独装;
- 要是你需要一些冷门或者不在默认列表里的扩展,得用
pecl命令来装(比如pecl install gmp),再也不能用brew install php71-xxx这种方式了。
关于你遇到的升级流程提示
你跑brew update && brew upgrade时看到的重命名、取消链接、移动文件这些操作,是Homebrew自动帮你做的迁移:把旧的php71包换成符合新规范的php@7.1,全程自动,不用你手动卸载重装折腾。迁移完之后,如果需要把php@7.1设为全局默认版本,可以敲brew link php@7.1 --force(注意权限问题,可能需要加sudo)。
内容的提问来源于stack exchange,提问作者Br3x
相关产品推荐
相关产品推荐

