Elbo Shindi Pangestu
Elbo Shindi Pangestu

Reputation: 2371

Error: [email protected] has been disabled because it is a versioned formula

I try to install [email protected] using brew. But, it return error because it is versioned formula. What is it?

command: brew install [email protected]

result: Error: [email protected] has been disabled because it is a versioned formula!

Upvotes: 161

Views: 127196

Answers (8)

aksxmtvnty9
aksxmtvnty9

Reputation: 34

On top of Anuga's answer, I would like to add a note.

If disable! date: "2022-11-28", because: :versioned_formula is not found, then look out for the deprecated or deprecate keyword while editing the formula. Proceed with the identical steps; it proved effective in my case!

Edit:

I encountered an additional challenge when attempting to install PHP, despite consulting various articles. Eventually, I identified that my Internet Service Provider (ISP), JIO, was blocking all requests to raw.githubusercontent.com.

This is a noteworthy consideration for individuals in India relying on JIO as their ISP.

Upvotes: 0

Anuga
Anuga

Reputation: 2827

For anyone having this issue 2023 (and beyond)

The accepted answer is an unnessercery step.

@Mike's answer is the better one, but is missing one important step.

HOMEBREW_NO_INSTALL_FROM_API=1 brew install [email protected]

HOMEBREW_NO_INSTALL_FROM_API=1 brew install [email protected]

HOMEBREW_NO_INSTALL_FROM_API=1 brew install [email protected]

HOMEBREW_NO_INSTALL_FROM_API=1 brew install [email protected]

Brew tells you, when you edit the Formula:

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/[email protected]
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.

This way, you still use the official formula. This of course, works for any formula.

So, just remove the following two lines from the formula:

  brew edit {{ formula }} // ex: brew edit [email protected]

  keg_only :versioned_formula

  disable! date: "2022-11-28", because: :versioned_formula

Upvotes: 37

sun
sun

Reputation: 1068

I was facing the same problem with Homebrew. The following steps resolved it, combining ideas from phpbrew#1249:

  1. Edit the formulae
    brew edit [email protected]
    
  2. Comment out or remove the date-based validation line, so that you can use the formula at all:
    disable! date: "2022-11-28", because: :versioned_formula
    
  3. Add the following lines after the block relating to "pkg-config" to make pkg-config find the compile headers of openssl v1.1.1 before the ones of v3 (which do not define RSA_SSLV23_PADDING):
    ENV["PKG_CONFIG_PATH"] = "#{Formula["[email protected]"].opt_prefix}/lib/pkgconfig:#{ENV["PKG_CONFIG_PATH"]}"
    system "echo", ENV["PKG_CONFIG_PATH"]
    
  4. Add OpenSSL flags directly afterwards:
    ENV["OPENSSL_CFLAGS"] = "-I#{Formula["[email protected]"].opt_include}"
    ENV["OPENSSL_LIBS"] = "-L#{Formula["[email protected]"].opt_prefix}/lib -lcrypto -lssl"
    
  5. In the args array for configure, replace --with-openssl with the following:
    --with-openssl=shared,#{Formula["[email protected]"].opt_prefix}
    
  6. Save and exit
  7. Reinstall PHP 7.4 from source using the locally edited formulae:
    HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall -s [email protected]
    

Upvotes: 1

Mike Richardson
Mike Richardson

Reputation: 799

You can also edit the formula and re-enable it. These steps worked for me in May 2023:

  1. brew edit [email protected]
  2. Look for disable! date: "2022-11-28", because: :versioned_formula. Change 2022 to 2024 (or later).
  3. HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source [email protected]

Notes:

  • A recent Homebrew change now requires the use of HOMEBREW_NO_INSTALL_FROM_API=1
  • Although the bottles still exist online, the binaries are broken due to being linked with an older version of icu4c (v71) than what Homebrew installs. So you must use --build-from-source and compile PHP yourself.

Upvotes: 69

rasif sahl
rasif sahl

Reputation: 203

When you are using homebrew to install PHP you need to know the versions that are been supported by homebrew. If you need to install an unsupported version you can do it by running these commands

brew tap shivammathur/php
brew install shivammathur/php/[email protected]
brew link [email protected]

And then if ypu need to check the current version and then shift between php version you can run

php -v
brew unlink php
brew link [email protected]

Upvotes: 11

tomkat-cr
tomkat-cr

Reputation: 1301

I applied the same instructions given by @derhansen and worked very well for [email protected]:

brew tap shivammathur/php
brew install shivammathur/php/[email protected]
brew link [email protected]

Upvotes: 80

ReDetection
ReDetection

Reputation: 3186

BTW, brew install [email protected] gives out same warning, but does install php7, so this could be an option

Upvotes: 1

derhansen
derhansen

Reputation: 6133

You can only install supported versions of PHP with brew. However, there is the tap shivammathur/php which can be used to install unsupported version of PHP.

  1. brew tap shivammathur/php
  2. brew install shivammathur/php/[email protected]
  3. brew link [email protected]

The first step only needs to be done once. After adding the tap, you can install PHP version 5.6 - 8.2.

Upvotes: 311

Related Questions