Skip to content
bjcerveny edited this page Apr 20, 2012 · 8 revisions

Quickly remove something from PATH

brew unlink foo

This can be useful if a package can't build against the version of something you have linked into /usr/local.

And of course, you can simply brew link foo again afterwards!

Install into Homebrew without formulas

./configure --prefix=/usr/local/Cellar/foo/1.2 && make && make install && brew link foo

Command tab-completion

Bash

Add to your ~/.bashrc:

source `brew --prefix`/Library/Contributions/brew_bash_completion.sh

ZSH

Run in terminal:

mkdir -p ~/.zsh/func
ln -s "$(brew --prefix)/Library/Contributions/brew_zsh_completion.zsh" ~/.zsh/func/_brew

Add to your ~/.zshrc:

fpath=($HOME/.zsh/func $fpath)
typeset -U fpath

Pre-downloading a file for a formula

Sometimes it's faster to download a file via means other than those strategies that are available as part of Homebrew. For example, Erlang provides a Torrent that'll let you download at 4–5× the normal HTTP method. Download the file and drop it in ~/Library/Caches/Homebrew, but watch the file name. Homebrew downloads files as {{ formula name }}-{{ version }}. In the case of Erlang, this requires renaming the file from otp_src_R13B03 to erlang-R13B03.

New:

mv the_tarball `brew --cache formula-name`

You can also pre-cache the download by using the command brew fetch formula which also displays the MD5. This can be useful for updating formulae to new versions.

Using Homebrew behind a proxy

Behind the scenes, Homebrew uses several commands for downloading files (e.g. curl, git, svn). Many of these tools can download via a proxy. It's a common (though not universal) convention for these command-line tools to observe getting the proxy parameters from environment variables (e.g. http_proxy). Unfortunately, most tools are inconsistent in their use of these environment parameters (e.g. curl supports http_proxy, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY, ALL_PROXY, NO_PROXY).

Luckily, for the majority of cases setting http_proxy is enough. You can set this environment variable in several ways (search on the internet for details), but the way I prefer is:

$ http_proxy=http://<proxyhost>:<proxyport>  brew install foo

Proxy Authentication

$ http_proxy=http://<user>:<password>@<proxyhost>:<proxyport>  brew install foo

NB: this technique will also work if you prefer to use sudo with Homebrew. But as sudo clears the environment before executing Homebrew, your proxy settings may get lost.

Workaround:

$ http_proxy=http://<proxyhost>:<proxyport>  sudo -E brew install foo