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
- Enable more cask metadata migration to JSON for all users by @MikeMcQuaid in #22958
- Skip rewriting Mach-O binaries when delete_rpath changes nothing by @hyuraku in #23079
- test_bot/formulae: remove generic tests by @cho-m in #23082
- Return a shared type instance from type constructors when runtime checking is disabled by @dduugg in #23078
- test_bot/formulae: skip portable Ruby tests on macOS if same version by @cho-m in #23083
- Test fixes for portable Ruby macOS runners by @cho-m in #23081
- test/cask/audit_spec: fix min OS for Intel by @cho-m in #23085
- Fix brew outdated --greedy crash on installed casks without a URL by @p-linnane in #23084
- Revert "Return a shared type instance from type constructors when runtime checking is disabled" by @dduugg in #23091
- Fix more test failures by @cho-m in #23088
- Add brew vulns command by @andrew in #23080
- Remove dead API methods and move generated_hash! to tests by @dduugg in #23095
- Fix donation link by @MikeMcQuaid in #23098
- Test uninstalling casks by @MikeMcQuaid in #23097
- Use RubyMacho 6.0.0 by @MikeMcQuaid in #23047
- Test without Sorbet runtime by @MikeMcQuaid in #23099
- Preserve cask container metadata by @MikeMcQuaid in #23100
- cmd/deps: accept --brewfile as an input source by @andrew in #23104
- vulns/scanner: fall back to verbatim head URL for non-forge repos by @andrew in #23103
- dev-cmd/generate-vulns-advisories: OSV advisory export for homebrew-advisory-database by @andrew in #23106
- Keep the current internal package API file on brew cleanup -s by @p-linnane in #23111
- Show application of file and data patches by @Bo98 in #23110
- vulns/osv_export: merge into existing records instead of overwriting by @andrew in #23112
- test_bot/formulae: only run subset of brew tests for portable Ruby by @cho-m in #23113
- Start bottle downloads before dependency fetches by @MikeMcQuaid in #23105
- download_queue: wake on completed downloads by @MikeMcQuaid in #23107
- Prewarm Bootsnap caches after brew update by @MikeMcQuaid in #23108
- generate-vulns-advisories: derive initial fixed via FormulaVersions by @andrew in #23115

