diff options
| author | Mike McQuaid | 2016-09-19 19:58:21 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-09-20 10:41:42 +0100 |
| commit | bd6fb88ddc72a0de4c27f65e60a82790a5d87f3f (patch) | |
| tree | 4a40854293dc41c0184f5532583a864712aa5b8c /docs/Tips-N'-Tricks.md | |
| parent | f87e3626bb241bc88bead4ed6448a76c1bf49f56 (diff) | |
| download | brew-bd6fb88ddc72a0de4c27f65e60a82790a5d87f3f.tar.bz2 | |
Rearrange repository files.
Diffstat (limited to 'docs/Tips-N'-Tricks.md')
| -rw-r--r-- | docs/Tips-N'-Tricks.md | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/docs/Tips-N'-Tricks.md b/docs/Tips-N'-Tricks.md new file mode 100644 index 000000000..e97f740ed --- /dev/null +++ b/docs/Tips-N'-Tricks.md @@ -0,0 +1,144 @@ +# Tips N' Tricks + +## Installing previous versions of formulae + +The preferred and supported method of installing specific versions of +formulae is to use the +[homebrew/versions](https://github.com/Homebrew/homebrew-versions) +tap. If the version you’re looking for isn’t available, consider [opening a +pull request](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md)! + +### Installing directly from pull-requests + +You can browse pull requests https://github.com/Homebrew/homebrew-core/pulls +and install through the direct link. For example Python 3.3.0 pull request https://github.com/Homebrew/homebrew/pull/15199 + +```sh +brew install https://raw.github.com/dsr/homebrew/9b22d42f50fcbc5e52c764448b3ac002bc153bd7/Library/Formula/python3.rb +``` + +## Quickly remove something from /usr/local + +```sh +brew unlink $FORMULA +``` + +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 $FORMULA` again afterwards! + +## Activate a previously installed version of a formula + +```sh +brew info $FORMULA +brew switch $FORMULA $VERSION +``` + +Use `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. + +## Install into Homebrew without formulae + +```sh +./configure --prefix=/usr/local/Cellar/foo/1.2 && make && make install && brew link foo +``` + +## 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 <code>{{ formula +name }}-{{ version }}</code>. In the case of Erlang, this requires +renaming the file from <code>otp_src_R13B03</code> to +<code>erlang-R13B03</code>. + +`brew --cache -s erlang` will print the correct name of the cached +download. This means instead of manually renaming a formula, you can +run `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 SHA256 value. 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), including at runtime: + +``` +http_proxy=http://<proxyhost>:<proxyport> brew install $FORMULA +``` + +### Proxy Authentication + +```sh +http_proxy=http://<user>:<password>@<proxyhost>:<proxyport> brew install $FORMULA +``` + +## Installing stuff without the Xcode-CLT + +```sh +$ 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. + +## Install only a formula's dependencies (not the formula) + +```sh +brew install --only-dependencies $FORMULA +``` + +## Interactive Homebrew Shell + +```sh +$ 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 > +``` + +## Hiding the beer mug emoji when finishing a build + +```sh +export HOMEBREW_NO_EMOJI=1 +``` + +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): + +```sh +export HOMEBREW_INSTALL_BADGE="☕️ 🐸" +``` + +## Editor plugins + +### Sublime Text + +In Sublime Text 2/3, you can use Package Control to install +[Homebrew-formula-syntax](https://github.com/samueljohn/Homebrew-formula-syntax), +which adds highlighting for inline patches. + +### Vim + +[brew.vim](https://github.com/xu-cheng/brew.vim) adds highlighting to +inline patches in Vim. + +### Emacs + +[homebrew-mode](https://github.com/dunn/homebrew-mode) provides syntax +highlighting for inline patches as well as a number of helper functions +for editing formula files. + +### Atom + +[language-homebrew-formula](https://atom.io/packages/language-homebrew-formula) +adds highlighting and diff support (with the +[language-diff](https://atom.io/packages/language-diff) plugin). |
