错误:php@7.3 已被禁用,因为它是版本化公式

Elb*_*stu 157 php homebrew

我尝试使用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 版本。

  1. brew tap shivammathur/php
  2. brew install shivammathur/php/php@7.3
  3. brew link php@7.3

第一步只需要做一次。添加tap后,您可以安装PHP版本5.6 - 8.2。

  • 这是正确的,但我需要执行更多步骤。发现于 https://github.com/shivammathur/homebrew-php 和 THIS->https://github.com/shivammathur/homebrew-php/wiki/Cleanup (12认同)

小智 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)

  • 这只是复制已接受答案中 98% 的内容。这应该只是对原文的评论。 (9认同)
  • 然而,我很高兴为 php 7.4 /grin 复制并粘贴此内容。我现在对现在为 php@8.0 做出答案的想法感到微笑,因为我知道它将在 2023 年 11 月 27 日对某人有用(不是真的这样做,而是对这个想法微笑) (9认同)

Mik*_*son 69

您还可以编辑公式并重新启用它。这些步骤在 2023 年 5 月对我有效:

  1. brew edit php@7.4
  2. 寻找disable! date: "2022-11-28", because: :versioned_formula。将 2022 年更改为 2024 年(或更晚)。
  3. HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source php@7.4

笔记:

  • 最近的 Homebrew 更改现在需要使用 HOMEBREW_NO_INSTALL_FROM_API=1
  • 尽管这些瓶子仍然在线存在,但由于与 Homebrew 安装的旧版本 icu4c (v71) 链接,二进制文件已损坏。所以你必须使用 --build-from-source 并自己编译 PHP。

  • 这对我来说不起作用,编辑日期和完全删除该禁用行仍然会导致相同的消息。 (6认同)
  • 尝试直接传递编辑文件的路径。例如 `brew install /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/php@7.4.rb` (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)