2017-01-04 10:53:21 +00:00
|
|
|
# Taps (third-party repositories)
|
2017-01-04 16:16:00 -06:00
|
|
|
|
2017-03-18 17:45:12 -04:00
|
|
|
`brew tap` adds more repositories to the list of formulae that `brew` tracks, updates,
|
|
|
|
and installs from. By default, `tap` assumes that the repositories come from GitHub,
|
2015-12-06 22:18:16 +00:00
|
|
|
but the command isn't limited to any one location.
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2017-01-04 10:53:21 +00:00
|
|
|
## The command (`brew tap`)
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2015-06-14 14:34:31 +01:00
|
|
|
* `brew tap` without arguments lists the currently tapped repositories. For
|
|
|
|
example:
|
2014-10-26 14:54:36 +00:00
|
|
|
|
|
|
|
```bash
|
|
|
|
$ brew tap
|
|
|
|
homebrew/dupes
|
2015-06-14 14:34:31 +01:00
|
|
|
mistydemeo/tigerbrew
|
|
|
|
edavis/emacs
|
2014-10-26 14:54:36 +00:00
|
|
|
```
|
|
|
|
|
2015-06-14 14:34:31 +01:00
|
|
|
* `brew tap <user/repo>` makes a shallow clone of the repository at
|
|
|
|
https://github.com/user/repo. After that, `brew` will be able to work on
|
2017-03-18 17:45:12 -04:00
|
|
|
those formulae as if they were in Homebrew's canonical repository. You can
|
2015-06-14 14:34:31 +01:00
|
|
|
install and uninstall them with `brew [un]install`, and the formulae are
|
|
|
|
automatically updated when you run `brew update`. (See below for details
|
|
|
|
about how `brew tap` handles the names of repositories.)
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2015-06-14 14:34:31 +01:00
|
|
|
* `brew tap <user/repo> <URL>` makes a shallow clone of the repository at URL.
|
|
|
|
Unlike the one-argument version, URL is not assumed to be GitHub, and it
|
2017-03-18 17:45:12 -04:00
|
|
|
doesn't have to be HTTP. Any location and any protocol that Git can handle is
|
2015-06-14 14:34:31 +01:00
|
|
|
fine.
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2017-03-18 17:45:12 -04:00
|
|
|
* Add `--full` to either the one- or two-argument invocations above, and Git
|
2016-09-14 17:21:53 +01:00
|
|
|
will make a complete clone rather than a shallow one. Full is the default for
|
|
|
|
Homebrew developers.
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2017-03-18 17:45:12 -04:00
|
|
|
* `brew tap --repair` migrates tapped formulae from a symlink-based to
|
2015-06-14 14:34:31 +01:00
|
|
|
directory-based structure. (This should only need to be run once.)
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2015-06-14 14:34:31 +01:00
|
|
|
* `brew untap user/repo [user/repo user/repo ...]` removes the given taps. The
|
2017-03-18 17:45:12 -04:00
|
|
|
repositories are deleted and `brew` will no longer be aware of their formulae.
|
|
|
|
`brew untap` can handle multiple removals at once.
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2015-06-14 14:34:31 +01:00
|
|
|
## Repository naming conventions and assumptions
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2015-06-14 14:34:31 +01:00
|
|
|
* On GitHub, your repository must be named `homebrew-something` in order to use
|
|
|
|
the one-argument form of `brew tap`. The prefix 'homebrew-' is not optional.
|
|
|
|
(The two-argument form doesn't have this limitation, but it forces you to
|
|
|
|
give the full URL explicitly.)
|
2014-10-26 14:54:36 +00:00
|
|
|
|
2015-06-14 14:34:31 +01:00
|
|
|
* When you use `brew tap` on the command line, however, you can leave out the
|
|
|
|
'homebrew-' prefix in commands.
|
|
|
|
|
|
|
|
That is, `brew tap username/foobar` can be used as a shortcut for the long
|
|
|
|
version: `brew tap username/homebrew-foobar`. `brew` will automatically add
|
|
|
|
back the 'homebrew-' prefix whenever it's necessary.
|
2014-10-26 14:54:36 +00:00
|
|
|
|
|
|
|
## Formula duplicate names
|
|
|
|
|
2016-04-11 17:51:54 -04:00
|
|
|
If your tap contains a formula that is also present in [`homebrew/core`](https://github.com/Homebrew/homebrew-core), that's fine,
|
2015-07-27 18:51:53 +08:00
|
|
|
but it means that you must install it explicitly by default.
|
2015-06-14 14:34:31 +01:00
|
|
|
|
2016-04-11 17:51:54 -04:00
|
|
|
If you would like to prioritize a tap over `homebrew/core`, you can use
|
2015-07-27 18:51:53 +08:00
|
|
|
`brew tap-pin username/repo` to pin the tap,
|
|
|
|
and use `brew tap-unpin username/repo` to revert the pin.
|
|
|
|
|
|
|
|
Whenever a `brew install foo` command is issued, brew will find which formula
|
|
|
|
to use by searching in the following order:
|
|
|
|
|
2017-03-18 17:45:12 -04:00
|
|
|
* pinned taps
|
|
|
|
* core formulae
|
|
|
|
* other taps
|
2015-07-27 18:51:53 +08:00
|
|
|
|
|
|
|
If you need a formula to be installed from a particular tap, you can use fully
|
|
|
|
qualified names to refer to them.
|
|
|
|
|
|
|
|
For example, you can create a tap for an alternative `vim` formula. Without
|
2017-02-23 12:20:07 -05:00
|
|
|
pinning it, the behaviour will be
|
2014-10-26 14:54:36 +00:00
|
|
|
|
|
|
|
```bash
|
2016-04-02 20:22:58 +08:00
|
|
|
brew install vim # installs from homebrew/core
|
2015-07-27 18:51:53 +08:00
|
|
|
brew install username/repo/vim # installs from your custom repo
|
2014-10-26 14:54:36 +00:00
|
|
|
```
|
2015-07-27 18:51:53 +08:00
|
|
|
|
|
|
|
However if you pin the tap with `brew tap-pin username/repo`, you will need to
|
2016-04-02 20:22:58 +08:00
|
|
|
use `homebrew/core` to refer to the core formula.
|
2015-07-27 18:51:53 +08:00
|
|
|
|
|
|
|
```bash
|
|
|
|
brew install vim # installs from your custom repo
|
2016-04-02 20:22:58 +08:00
|
|
|
brew install homebrew/core/vim # installs from homebrew/core
|
2015-07-27 18:51:53 +08:00
|
|
|
```
|
|
|
|
|
|
|
|
Do note that pinned taps are prioritized only when the formula name is directly
|
2017-03-18 17:45:12 -04:00
|
|
|
given by you, i.e. it will not influence formulae automatically installed as
|
2015-12-06 22:18:16 +00:00
|
|
|
dependencies.
|