Unlike chocolatey
or most Linux package managers, brew
does not have a native way for you to install older versions of software from the primary homebrew/core
repo if the older version does not already exist on your local machine. The only cleanly supported way (as of April 2020) is to create a custom Homebrew "tap" and extract specific versions of the target software into the "tap".
Software | Available Versions | Notes |
---|---|---|
Hugo | 0.70.0 @0.70.0 0.82.0 @0.82.0 0.104.3 @0.104.3 |
|
ansible-lint Not actively updated (as of October 2022) |
5.0.7 @5.0.7 5.3.1 @5.3.1 5.3.2 @5.3.2 6.0.2 @6.0.2 6.1.0 @6.1.0 6.2.1 @6.2.1 6.3.0 @6.3.0 6.4.0 @6.4.0 6.5.2 @6.5.2 6.7.0 @6.7.0 |
v5.0.7 Depends on ansible@3.2.0 from this tap v5.3.1 Depends on ansible@5.0.1 from this tap v5.3.2 Depends on ansible@5.2.0 from this tap v6.0.2 Depends on ansible@5.6.0 from this tap v6.1.0 Depends on ansible@5.7.1 from this tap v6.2.1 Depends on ansible@5.8.0 from this tap v6.3.0 Depends on ansible@6.0.0 from this tap v6.4.0 Depends on ansible@6.2.0 from this tap v6.5.2 Depends on ansible@6.4.0 from this tap v6.7.0 Depends on ansible@6.4.0 from this tap |
Ansible Not actively updated (as of October 2022) |
3.2.0 @3.2.0 3.3.0 @3.3.0 5.0.1 @5.0.1 5.2.0 @5.2.0 5.6.0 @5.6.0 5.7.1 @5.7.1 5.8.0 @5.8.0 6.0.0 @6.0.0 6.2.0 @6.2.0 6.3.0 @6.3.0 6.4.0 @6.4.0 |
|
kubectx Not actively updated (as of October 2022) |
0.9.3 @0.9.3 0.9.4 @0.9.4 |
v0.9.3 Depends on kubernetes-cli@1.23.5 from this tap v0.9.4 Depends on kubernetes-cli@1.25.2 from this tap |
Kubernetes CLI (kubectl ) Not actively updated (as of October 2022) |
1.21.0 @1.21.0 1.22.2 @1.22.2 1.23.0 @1.23.0 1.23.3 @1.23.3 1.23.5 @1.23.5 1.24.1 @1.24.1 1.24.3 @1.24.3 1.25.0 @1.25.0 1.25.1 @1.25.1 1.25.2 @1.25.2 |
Packages marked as Not actively updated are not kept up to date with upstream brew as I have moved to use the native upstream packages instead. This is mostly because a number of ecosystem components (such as linters) do not work well with pinned versions.
brew install balaji/custom/<formula>
Or brew tap balaji/custom
and then brew install <formula>
.
This portion is primarily taken from this SO answer plus some additional insight from another SO answer.
export TAP=[github-username]/homebrew-custom
#The use of /homebrew allows for the final command to be brew install github-username/custom
brew tap-new $TAP
brew extract --version X.Y.Z package-name $TAP
cd /path/to/$TAP
git remote add origin [GitHub-URL]
git commit -am "My Homebrew Tap"
git push origin -u main