Skip to content

Instantly share code, notes, and snippets.

@ArgonQQ
Last active March 3, 2023 02:06
Show Gist options
  • Save ArgonQQ/cff4834dab6b254cc2140bb1454b47ef to your computer and use it in GitHub Desktop.
Save ArgonQQ/cff4834dab6b254cc2140bb1454b47ef to your computer and use it in GitHub Desktop.
Brew install specific version / Locally freeze version

Brew install specific version / Locally freeze version

# Please define variables
packageName=<packageName>
packageVersion=<packageVersion>

# Create a new tab
brew tap-new local/$packageName

# Extract into local tap
brew extract --version=$packageVersion $packageName local/$packageName

# Verify packages is present
brew search $packageName@

# Run brew install@version as usual
brew install local/$packageName/$packageName@$packageVersion
@basejump
Copy link

Nice work! like so many things, simple once someone pieces it together. Thanks.
I made it into a bash script as we have similiar needs as @marcellodesales
Have not totally flushed it out but this has worked for a couple of packages we needed olds version for

#!/usr/bin/env bash

##
# Usage:
#    ./brew_install_version.sh yq 4.16.1
#

# the brew package name, ex: yq
packageName=$1
# the older version to install
packageVersion=$2

# Create a new tab
brew tap-new local/$packageName

# Extract into local tap
brew extract --version=$packageVersion $packageName local/$packageName

# Sanity check packages is present
brew search $packageName@

# Run brew install@version as usual
brew install local/$packageName/$packageName@$packageVersion

# optional, to clean up when done
# rm -rf /usr/local/Homebrew/Library/Taps/local/homebrew-$packageName/

@ArgonQQ
Copy link
Author

ArgonQQ commented Dec 11, 2021

Hi @basejump,

I am always happy to help & share some things which really bugged me for example with brew 😎👍.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment