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.
About thoughtbot
We've been helping engineering teams deliver exceptional products for over 20 years. Our designers, developers, and product managers work closely with teams to solve your toughest software challenges through collaborative design and development. Learn more about us.