Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Homebrew Install Specific Version of Formula

Tags:

homebrew

Specifically kubernetes-cli. I have 1.12.0 installed. I need 1.11.x, but I don't have that installed.

I've reviewed and tried every answer in this thread and nothing worked: Homebrew install specific version of formula?

I've tried brew search but there are no tapped versions:

~ brew search kubernetes-cli
==> Formulae
kubernetes-cli ✔

I've tried brew versions but that command has been removed:

~ brew versions 
Error: Unknown command: versions

I've tried brew install [email protected] and .1 and .2:

~ brew install [email protected]
Error: No available formula with the name "[email protected]" 
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

brew switch requires that I have the older version installed, which I don't.

~ brew switch kubernetes-cli 1.11.0
Error: kubernetes-cli does not have a version "1.11.0" in the Cellar.
kubernetes-cli installed versions: 1.12.0
like image 495
clay Avatar asked Oct 22 '18 00:10

clay


People also ask

How do I install a specific version of a package with brew?

If you can't use the web interface, you can clone the repo and do it locally: use git log master -- Formula/PACKAGENAME. rb to get the commit history, check out the correct commit, and then run brew install Formula/PACKAGENAME. rb to install it. I think you need brew unlink before brew install of other version.

How do I find my Swiftlint version?

Command Line USAGE: swiftlint <subcommand> OPTIONS: --version Show the version.

What is brew tap command?

brew tap adds more repositories to the list of formulae that brew tracks, updates, and installs from. By default, tap assumes that the repositories come from GitHub, but the command isn't limited to any one location.

Is keg only which means it was not Symlinked into usr local?

The packages for which the symlinking step is skipped are called keg-only. If you want to override Homebrew's decision not to symlink a package into /usr/local , you can modify your PATH variable as in the suggestion from brew that you've posted.


3 Answers

  1. Go to homebrew git repo: https://github.com/Homebrew/homebrew-core/
  2. Identify the commit specific to kubernetes 1.11.x version
  3. Go to Formula folder
  4. Open raw version of kubernetes-cli.rb file
  5. Copy the raw link of the file https://raw.githubusercontent.com/Homebrew/homebrew-core/3e8f5503dde7069c5ff49b82d5e1576e6ebe3a5d/Formula/kubernetes-cli.rb
  6. Run brew install <raw_link>
like image 52
urpalreloaded Avatar answered Sep 18 '22 19:09

urpalreloaded


I dont have enough rep to make a comment on the answer that helped me. So writing here to be more specific about point 2 from @urpalreloaded

  1. brew search [email protected]
  2. It will say that it did not find the cask but should give you a link to a closed pull request that matches the version you searched for. Follow the link to the pull request and the follow steps 3-5.
  3. brew unlink kubernetes-cli
  4. brew install <raw-link>

FWIW, I think brew doesnt keep versions because it will make the repo too big? This workaround is inconvenient and perhaps they could find a way around this issue on their end?

like image 32
Erik K Avatar answered Sep 22 '22 19:09

Erik K


The above answers were really useful but when I tried to install Carthage 0.30.1 on my Sierra 10.12.6 machine I got a SHA256 mismatch error:

$ brew install https://raw.githubusercontent.com/ilovezfs/homebrew-core/8c93668a451087611b2247cafe02ad6f867daed6/Formula/carthage.rb --force-bottle
######################################################################## 100.0%
Warning: carthage 0.32.0 is available and more recent than version 0.30.1.
==> Downloading https://homebrew.bintray.com/bottles/carthage-0.30.1.sierra.bottle.tar.gz
######################################################################## 100.0%
Error: SHA256 mismatch

and then it failed to build from source due to latest Sierra Xcode not supporting the new Xcode build system.

What worked for me was to directly install from the bottle (the url is shown in first brew install <raw url> output):

brew install https://homebrew.bintray.com/bottles/carthage-0.30.1.sierra.bottle.tar.gz
like image 22
dsjapan Avatar answered Sep 18 '22 19:09

dsjapan