The supported method of installing specific versions of
some formulae is to see if there is a versioned formula (e.g.
gcc@6) available. If the version you’re looking for isn’t available, consider opening a pull request!
brew install https://raw.github.com/dsr/homebrew/9b22d42f50fcbc5e52c764448b3ac002bc153bd7/Library/Formula/python3.rb
brew unlink <formula>
This can be useful if a package can’t build against the version of something you have linked into
And of course, you can simply
brew link <formula> again afterwards!
brew info <formula> brew switch <formula> <version>
brew info <formula> to check what versions are installed but not currently activated, then
brew switch <formula> <version> to activate the desired version. This can be useful if you would like to switch between versions of a formula.
./configure --prefix=/usr/local/Cellar/foo/1.2 && make && make install && brew link foo
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
watch the file name. Homebrew downloads files as
In the case of Erlang, this requires renaming the file from
brew --cache -s erlang will print the correct name of the cached
download. This means instead of manually renaming a formula, you can
mv the_tarball $(brew --cache -s <formula>).
You can also pre-cache the download by using the command
brew fetch formula which also displays the SHA-256 hash. This can be useful for updating formulae to new versions.
Behind the scenes, Homebrew uses several commands for downloading files (e.g.
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.
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), including at runtime:
http_proxy=http://<proxyhost>:<proxyport> brew install <formula>
To use proxy authentication:
http_proxy=http://<user>:<password>@<proxyhost>:<proxyport> brew install <formula>
brew sh # or: eval $(brew --env) gem install ronn # or c-programs
This imports the
brew environment into your existing shell;
gem will pick up the environment variables and be able to build. As a bonus
brew’s automatically determined optimization flags are set.
brew install --only-dependencies <formula>
$ brew irb 1.8.7 :001 > Formula.factory("ace").methods - Object.methods => [:install, :path, :homepage, :downloader, :stable, :bottle, :devel, :head, :active_spec, :buildpath, :ensure_specs_set, :url, :version, :specs, :mirrors, :installed?, :explicitly_requested?, :linked_keg, :installed_prefix, :prefix, :rack, :bin, :doc, :include, :info, :lib, :libexec, :man, :man1, :man2, :man3, :man4, :man5, :man6, :man7, :man8, :sbin, :share, :etc, :var, :plist_name, :plist_path, :download_strategy, :cached_download, :caveats, :options, :patches, :keg_only?, :fails_with?, :skip_clean?, :brew, :std_cmake_args, :deps, :external_deps, :recursive_deps, :system, :fetch, :verify_download_integrity, :fails_with_llvm, :fails_with_llvm?, :std_cmake_parameters, :mkdir, :mktemp] 1.8.7 :002 >
This sets the HOMEBREW_NO_EMOJI environment variable, causing Homebrew to hide all emoji.
The beer emoji can also be replaced with other character(s):
export HOMEBREW_INSTALL_BADGE="☕️ 🐸"
In Sublime Text 2/3, you can use Package Control to install Homebrew-formula-syntax, which adds highlighting for inline patches.
brew.vim adds highlighting to inline patches in Vim.
homebrew-mode provides syntax highlighting for inline patches as well as a number of helper functions for editing formula files.
pcmpl-homebrew provides completion for emacs shell-mode and eshell-mode.