我尝试使用brew安装php@7.3。但是,它返回错误,因为它是版本化公式。它是什么?
命令:brew install php@7.3
结果:Error: php@7.3 has been disabled because it is a versioned formula!
der*_*sen 303
您只能使用brew 安装受支持的PHP 版本。但是,有一个水龙头shivammathur/php可用于安装不受支持的 PHP 版本。
brew tap shivammathur/phpbrew install shivammathur/php/php@7.3brew link php@7.3第一步只需要做一次。添加tap后,您可以安装PHP版本5.6 - 8.2。
小智 79
我应用了 @derhansen 给出的相同说明,并且在 php@7.4 上运行得很好:
brew tap shivammathur/php
brew install shivammathur/php/php@7.4
brew link php@7.4
Run Code Online (Sandbox Code Playgroud)
Mik*_*son 69
您还可以编辑公式并重新启用它。这些步骤在 2023 年 5 月对我有效:
brew edit php@7.4disable! date: "2022-11-28", because: :versioned_formula。将 2022 年更改为 2024 年(或更晚)。HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source php@7.4笔记:
Anu*_*uga 35
对于 2023 年(及以后)遇到此问题的任何人
接受的答案是一个不必要的步骤。
@迈克的答案是更好的答案,但缺少一个重要的步骤。
HOMEBREW_NO_INSTALL_FROM_API=1 brew install php@7.3
HOMEBREW_NO_INSTALL_FROM_API=1 brew install php@7.4
HOMEBREW_NO_INSTALL_FROM_API=1 brew install php@8.0
HOMEBREW_NO_INSTALL_FROM_API=1 brew install php@8.1
当您编辑公式时,Brew 会告诉您:
Warning: Unless `HOMEBREW_NO_INSTALL_FROM_API` is set when running
`brew install`, it will ignore your locally edited formula.
Editing /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/php@7.4.rb
Warning: Using code because no editor was set in the environment.
This may change in the future, so we recommend setting EDITOR,
or HOMEBREW_EDITOR to your preferred text editor.
Run Code Online (Sandbox Code Playgroud)
这样,你仍然使用官方公式。当然,这适用于任何公式。
因此,只需从公式中删除以下两行:
brew edit {{ formula }} // ex: brew edit php@7.4
keg_only :versioned_formula
disable! date: "2022-11-28", because: :versioned_formula
Run Code Online (Sandbox Code Playgroud)
小智 9
当您使用homebrew安装PHP时,您需要知道homebrew支持的版本。如果您需要安装不受支持的版本,可以通过运行以下命令来完成
brew tap shivammathur/php
brew install shivammathur/php/php@7.4
brew link php@7.4
Run Code Online (Sandbox Code Playgroud)
然后,如果 ypu 需要检查当前版本,然后在 php 版本之间切换,您可以运行
php -v
brew unlink php
brew link php@7.4
Run Code Online (Sandbox Code Playgroud)