Lesser-known Homebrew features
Homebrew is a package manager for OSX that greatly simplifies software installation. It has many interesting features that are not widely known and that may substantially improve your workflow. In this article I will present some of them.
Once a package is upgraded you can easily switch back to older version with
switch. Check currently installed versions with
brew info elasticsearch elasticsearch: stable 1.1.1, HEAD http://www.elasticsearch.org /usr/local/Cellar/elasticsearch/0.90.1 (30 files, 19M) Built from source /usr/local/Cellar/elasticsearch/1.1.1 (31 files, 21M) Built from source From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/elasticsearch.rb
and then switch to an older version if needed
brew switch elasticsearch 0.90.1 Cleaning /usr/local/Cellar/elasticsearch/0.90.1 Cleaning /usr/local/Cellar/elasticsearch/1.1.1 3 links created for /usr/local/Cellar/elasticsearch/0.90.1
Currently active version can be checked with
brew which elasticsearch elasticsearch: 0.90.1
If you need to install older software at any time, simply add
brew tap homebrew/versions
Check available software versions with
search or on Github.
brew search postgresql
OSX Applications with Cask
Cask is a Homebrew plugin that allow to install OSX applications distributed as binaries. Usually you get a
dmg file and then drag-n-drop into
/Applications - with Cask this process can be automated using the command line.
brew tap caskroom/cask
brew install brew-cask
Install an OSX application
brew cask install adium
Cask puts applications into
/opt/homebrew-cask/Caskroom and the symlinks them to
The list of OSX applications that can be installed with Cask is available on Github. You can also use
search command i.e.
brew cask search google ==> Partial matches google-chrome google-earth ...
Homebrew allows to define dependencies with single file
Brewfile similar to
bundler from Ruby world and its
install curl install openssl link --force openssl
Once defined, you can install those dependencies by running
brew bundle. Each command prefixed with
brew and executed in defined order.
Brewfile provides a useful method to store in one place all software needed to be installed on given machine.