I don’t remember exactly when I started using Homebrew, but I know that I had been using a Mac as my regular computer for a while and wanted an alternative to manage dev tools. Homebrew would turn out to be my first foray into the concept and practice of package management, and it’s been tremendously useful for me.
I keep a personal MacOS setup guide on Github because I swap laptops or reformat my laptop enough that I want to keep track of what tools I use. Adding Homebrew to my software management suite has been instrumental in making this work. I can install and update software and clean up outdated versions. I even wrote a tutorial on setting up a keyword script last week that makes this even easier for me.
What is Homebrew
Homebrew describes itself as The missing package manager for macOS and for good reason. It allows me to install/uninstall/update/downgrade/manage software used on my Mac directly from the command line.
This saves a bunch of time and overhead, and allows me to bulk install programs. I can take a list of install commands, paste them into my terminal, and have them all run at once. Below is a list of programs that I install with Homebrew on a new machine currently, which turns hours of installation into a few seconds of typing and a few minutes of letting the machine run in the background.
Code language: Bash (bash)
brew install arp-scan brew install asciidoc brew install brew-cask-completion brew install cmake brew install composer brew install docbook-xsl brew install ghostscript brew install git brew install highlight brew install imagemagick brew install lastpass-cli --with-pinentry --with-doc brew install nmap brew install node brew install openssl brew install php72 brew install php-cs-fixer brew install phplint brew install pkg-config brew install python3 brew postinstall python3 brew install thefuck brew install vassh brew install vim brew install wget brew install wrk brew install zsh-syntax-highlighting
Some programs don’t exist in Homebrew, usually the apps that you use with a GUI, as opposed to command line tools. For these there is
Homebrew Cask, an extension of Homebrew for the software that doesn’t exist in core.
So instead of having to open up Safari on a new machine (or IE for the Windows folks, with a tool like Scoop or Chocolatey – The package manager for Windows) just to download Chrome, I can open my terminal after Homebrew is installed and type
brew install chrome to get the latest version of the browser installed and ready to use. No more downloading zipped files, unzipping a package, running the package and accepting pages of prompts, and having to eject the package to delete the install files.
Updates are great too. With the script that I shared last week I update all of my apps every morning, ensuring that I have the latest, greatest, and most secure version. This also means that I am far less likely to open an app on my computer as I’m ready to use it, only to be greeted with a “new version available” dialog to either forget or stop my workflow.
Here are the cask packages that I currently install after I reformat my computer, which covers the majority of apps that I use.
Code language: Bash (bash)
brew cask install alfred brew cask install arduino brew cask install boostnote brew cask install calibre brew cask install cleanmymac brew cask install dropbox brew cask install etcher brew cask install evernote brew cask install firefox brew cask install google-chrome brew cask install imageoptim brew cask install iterm2 brew cask install nordvpn brew cask install owasp-zap brew cask install qlcolorcode brew cask install qlmarkdown brew cask install qlprettypatch brew cask install qlstephen brew cask install quicklook-csv brew cask install quicklook-json brew cask install sequel-pro brew cask install signal brew cask install skype brew cask install slack brew cask install spectacle brew cask install sublime-text brew cask install suspicious-package brew cask install telegram brew cask install transmit brew cask install vagrant brew cask install virtualbox brew cask install vlc brew cask install webpquicklook brew cask install caskroom/fonts/font-source-code-pro
Followup and Conclusion
I just learned that Homebrew has a Patreon to support development of the project, and I just pledged a token monthly donation. For all that it’s given me, it’s definitely proven valuable.
Read the documentation for Homebrew for all of the cool things that you can do with it. The project homepage has fairly straightforward installation instructions.
Do you use Homebrew yet? Do you have another method to manage updates that I should know about, or some tools that I’m missing? Let me know here or on Twitter!