Bundler users define dependencies for Ruby applications in a Gemfile
and install those dependencies by running bundle install.
Homebrew users on macOS can define system dependencies for their projects
with a Brewfile:
# Brewfile
brew "openssl"
# a comment
tap "homebrew/dupes"
The brew bundle command is automatically installed the first
time it is used. Simply create a Brewfile at the root
of your project’s directory tree, and run brew bundle while in that
directory.
Note that Homebrew will treat lines that start with # as comments. To install
a package, use brew, and to tap a repository, use tap. So this:
brew "openssl"
# a comment
tap "homebrew/dupes"
is equivalent as these commands:
brew install openssl
brew tap homebrew/dupes
Usage
I can think of a few places where a Brewfile would be welcome:
- In dotfiles, either yours or your company’s.
- A setup script for your app (
bundle install && brew bundle) - A setup script for a new machine. I often forget to install one of them (like rbenv-gem-rehash).
It’s a neat encapsulation for non-programming-language dependencies like
phantomjs.
What’s next
If you found this useful, I recommend checking out the source
of the brew bundle command. For more Homebrew tricks, read through our
macOS-related posts.