Homebrew installs the stuff you need that Apple (or your Linux system) didn't. Homebrew installs packages to their own directory and then symlinks their files into /usr/local.
Homebrew won't install files outside its prefix and you can place a Homebrew installation wherever you like. Trivially create your own Homebrew packages. It's all Git and Ruby underneath, so hack away with the knowledge that you can easily revert your modifications and merge upstream updates.
Homebrew formulas are simple Ruby scripts.
What's New
- Replace ronn with Kramdown's converter by @Bo98 in #16868
- Various brew update behaviour improvements by @MikeMcQuaid in #16855
- cleanup: track removed links & dirs during dry-run by @cho-m in #16871
- docs: remove some system Python notes by @cho-m in #16870
- Memoize installed tap loading v2 by @apainintheneck in #16863
- Reproducible builds for native compiled binaries by @Bo98 in #16860
- Actually remove FromDefaultNameLoader. by @reitermarkus in #16884
- cask: always return short cask tokens from core cask tap by @apainintheneck in #16867
- Fix untap cmd bugs by @apainintheneck in #16875
- brew.sh: fix autoupdate not working correctly for bump commands by @Bo98 in #16885
- diagnostic: use FromTapLoader to check 3rd-party formula by @cho-m in #16879
- formula: remove setting up home for python 2.7 by @cho-m in #16888
- Add GitHub Actions warning/error annotations for deprecations/disables. by @MikeMcQuaid in #16890
- cask/artifact: check the bundle version when using --adopt. by @MikeMcQuaid in #16889
- cmd/update-reset: use stable tag. by @MikeMcQuaid in #16891
- Add tapioca compiler for Homebrew::CLI::Args by @dduugg in #16880
- utils/github: use GraphQL PR searching by @Bo98 in #16886
- dev-cmd/bump: skip Repology checks in CI for livecheckables by @Bo98 in #16887
- utils/github: fix variable scope by @Bo98 in #16900