Homebrew

Minimalist software management for POSIX systems

June 15, 2019 — July 5, 2023

compsci
computers are awful
POSIX
premature optimization
Figure 1

homebrew is a good dependency manager for apps not packaged by the system.

1 Installation

Classic install like this:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

On macOS, there is, since version 4.0, a .pkg installer. For now, it is not easy to find (may change when it has been better tested) but it is available at the build action artefacts, e.g. here is the 4.0.26 installer.

2 Desiderata

On Linux, I want all the libraries that are too patent-encumbered to be bundled with whatever holier-than-me distribution I run. This means codecs and other content-related apps, e.g.

brew install libsamplerate libsndfile ffmpeg node pandoc webp libavif youtube-dl

I would typically install the following bonus utilities:

brew install hugo pandoc fish syncthing pyenv pipx rename \
    fdupes rclone tectonic poetry bfg gdal

3 Useful commands

If I want to know what I currently have installed, I can do:

brew leaves

4 Old versions of stuff

Homebrew no longer supports multiple versions as a mainline feature; there is a developer hack:

brew unlink hugo
brew extract --version=0.112.5 hugo homebrew/core
brew install hugo@0.112.5
brew link hugo

That did not work for me.