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.