Brewfile
Brewfile is a feature of brew, also referred to as brew bundle.
With brewfile you can install in a declarative way stuff like:
- normal packages (like as
brew install package) - taps (like as
brew tap homebrew/cask) - casks (like as
brew install --cask package) - mas (Mac App Store packages, like as
mas install package) - whalebrew (like as
whalebrew install repo/docker-image)
Usage
From scratch
Create a file called Brewfile whenever you want (for example in home directory) and type brew bundle in a terminal to let brew read, update and install everything.
From existing system
If you have already packages installed and you don’t want to write a Brewfile from scratch, you can dump your packages with brew bundle dump.
Force cleanup
If you want your Brewfile to match 1:1 with your system, you can use brew bundle cleanup --force to remove all packages that are not in your Brewfile.
Example
Example of a Brewfile, taken from the Official Github repository:
# 'brew tap'
tap "homebrew/cask"
# 'brew tap' with custom Git URL
tap "user/tap-repo", "https://user@bitbucket.org/user/homebrew-tap-repo.git"
# set arguments for all 'brew install --cask' commands
cask_args appdir: "~/Applications", require_sha: true
# 'brew install'
brew "imagemagick"
# 'brew install --with-rmtp', 'brew services restart' on version changes
brew "denji/nginx/nginx-full", args: ["with-rmtp"], restart_service: :changed
# 'brew install', always 'brew services restart', 'brew link', 'brew unlink mysql' (if it is installed)
brew "mysql@5.6", restart_service: true, link: true, conflicts_with: ["mysql"]
# 'brew install --cask'
cask "google-chrome"
# 'brew install --cask --appdir=~/my-apps/Applications'
cask "firefox", args: { appdir: "~/my-apps/Applications" }
# always upgrade auto-updated or unversioned cask to latest version even if already installed
cask "opera", greedy: true
# 'brew install --cask' only if '/usr/libexec/java_home --failfast' fails
cask "java" unless system "/usr/libexec/java_home --failfast"
# 'mas install'
mas "1Password", id: 443987910
# 'whalebrew install'
whalebrew "whalebrew/wget"