Kevin C. Wong

Homebrew (2009) [+]

Homebrew is a package manager for macOS. It allows you to easily install various Linux/Unix applications and libraries in the macOS subsystem (i.e. these are applications that either don't have UI or their UI is based on X-Windows or something not native macOS).

One thing is that everything installs in /usr/local/opt (Intel Macs) or /opt/homebrew (Mx Macs) so it shouldn't overwrite existing macOS stuff and it updates your path to use homebew directories first. You can search their web site for packages and when you find the one you want the page has the command needed to install. Most package are pre-compiled so it's merely download and unzip which install fast. Similarly run "brew update" and "brew upgrade" to update everything to latest version and it even warns you when packages are obsolete and no longer being updated.

I've used Homebrew to install various packages on my server machine:

Apache 2 - web server
certbot - to update ssl certs from Let's Encrypt

postgresql@15 - database
pgadmin4 - UI admin tool (this is a Mac app and the brew script downloads it from pgAdmin web site)
node@16 - Node JS, this and postgres is for running Wiki.js

emacs - editor cause I'm an emacs guy not vi
wget - sometimes you need to download stuff

Homebrew installs any pre-req packages as necessary.

Homebrew is easy to use. It's very popular so has lots of packages and they are frequently updated as the base applications are updated.

Other package managers:

Fink - older than Homebrew but does not currently support macOS 14 (and 11-13 supported added last year and you need Xcode installed), which brings up the point that Homebrew only support latest macOS, currently 12+ and they'll probably drop macOS 12 when 15 comes out. Fink on the other hand is supported on macOS 10.9+

MacPorts - easy install on macOS 12 to 14 and more complicated on older macOS (down to macOS 10.5 Leopard). Tends to be more download source and compile though now also supports pre-compiled binaries.