Homebrew Terminology
Formula: A package definition written in Ruby
Keg: Installation prefix of a formula (e.g., /usr/local/Cellar/pipenv)
Keg-only dependency: Dependency that isn't symlinked to places like /usr/local
Cask: An extension of Homebrew to install MacOS native apps (e.g., Atom and Google Chrome)
Cellar: Where kegs are installed (/usr/local/Cellar)
Bottle: A pre-built keg (rather than one built from source)
Tap: A git repository. To tap a repository is to make a shallow clone of it.
Brew bundle: An extension of Homebrew to describe dependencies
Essential commands
brew install <formula name> # Installs a package
brew uninstall <formula name> # Uninstalls a package
brew list # Lists all installed packages
brew search # Lists all locally available packages
brew search <text> # Searches online in homebrew/core and
# homebrew/cask
brew search /<text>/ # Search term is interpreted as a
# regular expression if bookended by slashes. Searches
# online in homebrew/core and homebrew/cask
Useful commands
brew commands # Lists all built-in and external commands known
# to homebrew. Returns with subheadings for:
# "Built-in commands", "Built-in developer commands",
# "External commands", "Cask commands", and
# "external cask commands".
brew cleanup # Removes old lock files and outdated downloads
# for formulae and casks, removing old versions
brew doctor # Checks system for potential problems
brew log # Shows git log for the Homebrew repository
brew log <formula name> # Shows git log for formula
brew update # Fetches newest version of Homebrew and all
# formula from Github and performs necessary migrations
brew upgrade # Upgrade outdated casks and formula using the
# same options they were installed with
brew upgrade <formula name|cask name> # Upgrade formula|cask
Managing Background Services
Brew services manage background services using the macOS launchctl daemon manager
brew services run <formula name> # Run the service without
# registering to launch it at login (or boot)
brew services run --all # Run all services without registering
# to launch them at login/boot
brew services start <formula name> # Immediately start the
# service and register it to launch at login (or boot)
brew services start --all # Immediately start all services
# and register them to launch at login/boot
brew services stop <formula name> # Immediately stop the
# service and unregister it from launching at login (or boot)
brew services stop --all # Immediately stop all services
# and register unregister them from launching at login/boot
brew services restart <formula name> # Stop (if necessary) and
# start the service immediately, registering to launch at
# login (or boot)
brew services restart --all # Stop (if necessary) all services
# and start them immediately, registering to launch them at
# login/boot
brew services cleanup # Remove all unused services
brew services # Lists all managed services and whether they
# are stopped or started
References:
Top comments (1)
Thanks for this, it's really nice.
I started using homebrew recently, I found out it works on linux too (with some limitations). The output messages and the commands are very user friendly, I like it so far.