Newer
Older
<%
# To make changes to this man page:
#
# - For changes to a specific command (appears in the `COMMANDS` section):
# - Edit the top comment in `Library/Homebrew/cmd/<command>.{rb,sh}`.
# - Make sure to use the line prefix `#:` for the comments to be recognized as
# documentation. If in doubt, compare with already documented commands.
# - For other changes: Edit this file.
#
# When done, regenerate the man page and its HTML version by running `brew man`.
%>
brew(1) -- The Missing Package Manager for macOS
================================================
## SYNOPSIS
`brew` `--version`<br>
`brew` <command> [`--verbose`|`-v`] [<options>] [<formula>] ...
## DESCRIPTION
Homebrew is the easiest and most flexible way to install the UNIX tools Apple
## ESSENTIAL COMMANDS
For the full command list, see the [COMMANDS](#commands) section.
With `--verbose` or `--debug`, many commands print extra debugging information. Note that
these options should only appear after a command.
<formula> is usually the name of the formula to install, but it has other syntaxes which
are listed in the [SPECIFYING FORMULAE](#specifying-formulae) section.
### `list`:
List all installed formulae.
### `search` (<text>|`/`<text>`/`):
Perform a substring search of cask tokens and formula names for <text>. If <text>
is flanked by slashes, it is interpreted as a regular expression.
The search for <text> is extended online to `homebrew/core` and `homebrew/cask`.
If no search term is provided, all locally available formulae are listed.
## OFFICIAL EXTERNAL COMMANDS
Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store.
See `brew bundle --help`.
**Homebrew/homebrew-bundle**: <https://github.com/Homebrew/homebrew-bundle>
Install macOS applications distributed as binaries. See `brew-cask`(1).
**Homebrew/homebrew-cask**: <https://github.com/Homebrew/homebrew-cask>
Manage background services with macOS' `launchctl`(1) daemon manager.
See `brew services --help`.
**Homebrew/homebrew-services**: <https://github.com/Homebrew/homebrew-services>
Homebrew, like `git`(1), supports external commands. These are executable
scripts that reside somewhere in the `PATH`, named `brew-`<cmdname> or
`brew-`<cmdname>`.rb`, which can be invoked like `brew` <cmdname>. This allows you
to create your own commands without modifying Homebrew's internals.
Instructions for creating your own commands can be found in the docs:
<https://docs.brew.sh/External-Commands>
## SPECIFYING FORMULAE
Many Homebrew commands accept one or more <formula> arguments. These arguments
can take several different forms:
* The name of a formula:
e.g. `git`, `node`, `wget`.
* The fully-qualified name of a tapped formula:
Sometimes a formula from a tapped repository may conflict with one in
`homebrew/core`.
You can still access these formulae by using a special syntax, e.g.
`homebrew/dupes/vim` or `homebrew/versions/node4`.
* An arbitrary file or URL:
`https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/git.rb`,
or from a local path. It can point to either a formula file or a bottle.
In the case of a URL, the downloaded file will be cached for later use.
Note that environment variables must have a value set to be detected. For example, run
`export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just
`export HOMEBREW_NO_INSECURE_REDIRECT`.
Linux only: If set, Homebrew will pass the set value to type name to the compiler's
`-march` option instead of using the default (`-march=native`).
If set, instructs Homebrew to prefix all download URLs, including those for bottles,
with this variable. For example, `HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080`
will cause a formula with the URL `https://example.com/foo.tar.gz` to instead
download from `http://localhost:8080/example.com/foo.tar.gz`.
* `HOMEBREW_AUTO_UPDATE_SECS`:
If set, Homebrew will only check for autoupdates once per this seconds interval.
* `HOMEBREW_AWS_ACCESS_KEY_ID`, `HOMEBREW_AWS_SECRET_ACCESS_KEY`:
When using the `S3` download strategy, Homebrew will look in
these variables for access credentials (see
<https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-environment>
to retrieve these access credentials from AWS). If they are not set,
the `S3` download strategy will download with a public (unsigned) URL.
* `HOMEBREW_BAT`:
If set, Homebrew will use `bat` for the `brew cat` command.
By default, Homebrew uses `https://homebrew.bintray.com/` as its download
mirror for bottles. If set, instructs Homebrew to instead use the specified
URL. For example, `HOMEBREW_BOTTLE_DOMAIN=http://localhost:8080` will
cause all bottles to download from the prefix `http://localhost:8080/`.
If set, Homebrew uses this setting as the browser when opening project
homepages, instead of the OS default browser.
If set, instructs Homebrew to use the specified directory as the download cache.
*Default:* `~/Library/Caches/Homebrew`.
If set, Homebrew will not pass `-q` when invoking `curl`(1), which disables
the use of `curlrc`.
* `HOMEBREW_CURL_VERBOSE`:
If set, Homebrew will pass `--verbose` when invoking `curl`(1).
* `HOMEBREW_CURL_RETRIES`:
If set, Homebrew will pass the given retry count to `--retry` when invoking `curl`(1).
* `HOMEBREW_DEBUG`:
If set, any commands that can emit debugging information will do so.
* `HOMEBREW_DEVELOPER`:
If set, Homebrew will tweak behaviour to be more relevant for Homebrew
developers (active or budding), e.g. turning warnings into errors.
* `HOMEBREW_DISPLAY`:
If set, Homebrew will use this X11 display when opening a page in a browser,
for example with `brew home`. Primarily useful on Linux.
*Default:* the value of the user's `DISPLAY` environment variable.
* `HOMEBREW_DISPLAY_INSTALL_TIMES`:
If set, Homebrew will print install times for each formula at the end of the run.
* `HOMEBREW_EDITOR`:
If set, Homebrew will use this editor when editing a single formula, or
several formulae in the same directory.
*Note:* `brew edit` will open all of Homebrew as discontinuous files and
directories. TextMate can handle this correctly in project mode, but many
editors will do strange things in this case.
If set, Homebrew will always use a Homebrew-installed `curl` rather than the
system version. Automatically set if the system version of `curl` is too old.
If set, Homebrew will always use its vendored, relocatable Ruby version
even if the system version of Ruby is new enough.
* `HOMEBREW_FORCE_BREWED_GIT`:
If set, Homebrew will always use a Homebrew-installed `git`(1) rather than the
system version. Automatically set if the system version of `git` is too old.
A personal access token for the GitHub API, used by Homebrew for features
such as `brew search`. You can create one at <https://github.com/settings/tokens>.
If set, GitHub will allow you a greater number of API requests. For more
information, see: <https://developer.github.com/v3/#rate-limiting>
*Note:* Homebrew doesn't require permissions for any of the scopes.
* `HOMEBREW_INSTALL_BADGE`:
Text printed before the installation summary of each successful build.
If set, Homebrew will use the specified directory to store log files.
* `HOMEBREW_MAKE_JOBS`:
If set, instructs Homebrew to use the value of `HOMEBREW_MAKE_JOBS` as
the number of parallel jobs to run when building with `make`(1).
*Default:* the number of available CPU cores.
* `HOMEBREW_NO_ANALYTICS`:
If set, Homebrew will not send analytics. See: <https://docs.brew.sh/Analytics>
If set, Homebrew will not auto-update before running `brew install`,
`brew upgrade` or `brew tap`.
* `HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK`:
If set, Homebrew will fail on the failure of installation from a bottle
rather than falling back to building from source.
* `HOMEBREW_NO_COLOR`:
If set, Homebrew will not print text with colour added.
* `HOMEBREW_NO_EMOJI`:
If set, Homebrew will not print the `HOMEBREW_INSTALL_BADGE` on a
successful build.
*Note:* Homebrew will only try to print emoji on OS X Lion or newer.
* `HOMEBREW_NO_INSECURE_REDIRECT`:
If set, Homebrew will not permit redirects from secure HTTPS
to insecure HTTP.
While ensuring your downloads are fully secure, this is likely
to cause from-source SourceForge, some GNU & GNOME based
formulae to fail to download.
If set, Homebrew will not use the GitHub API, e.g. for searches or
fetching relevant issues on a failed install.
* `HOMEBREW_NO_INSTALL_CLEANUP`:
If set, `brew install`, `brew upgrade` and `brew reinstall` will never
automatically cleanup the installed/upgraded/reinstalled formulae or all
formulae every 30 days.
If set, Homebrew will use Pry for the `brew irb` command.
* `HOMEBREW_SVN`:
When exporting from Subversion, Homebrew will use `HOMEBREW_SVN` if set,
a Homebrew-built Subversion if installed, or the system-provided binary.
Set this to force Homebrew to use a particular `svn` binary.
* `HOMEBREW_TEMP`:
If set, instructs Homebrew to use `HOMEBREW_TEMP` as the temporary directory
for building packages. This may be needed if your system temp directory and
Homebrew prefix are on different volumes, as macOS has trouble moving
symlinks across volumes when the target does not yet exist.
This issue typically occurs when using FileVault or custom SSD configurations.
* `HOMEBREW_UPDATE_TO_TAG`:
If set, instructs Homebrew to always use the latest stable tag (even if
developer commands have been run).
* `HOMEBREW_VERBOSE`:
If set, Homebrew always assumes `--verbose` when running commands.
* `http_proxy`:
Sets the HTTP proxy to be used by `curl`, `git` and `svn` when downloading
through Homebrew.
* `https_proxy`:
Sets the HTTPS proxy to be used by `curl`, `git` and `svn` when downloading
through Homebrew.
* `all_proxy`:
Sets the SOCKS5 proxy to be used by `curl`, `git` and `svn` when downloading
through Homebrew.
* `ftp_proxy`:
Sets the FTP proxy to be used by `curl`, `git` and `svn` when downloading
through Homebrew.
Sets the comma-separated list of hostnames and domain names that should be excluded
from proxying by `curl`, `git` and `svn` when downloading through Homebrew.
Set the `http_proxy`, `https_proxy`, `all_proxy`, `ftp_proxy` and/or `no_proxy`
environment variables documented above.
For example, to use an unauthenticated HTTP or SOCKS5 proxy:
export http_proxy=http://$HOST:$PORT
export all_proxy=socks5://$HOST:$PORT
export http_proxy=http://$USER:$PASSWORD@$HOST:$PORT
Homebrew Documentation: <https://docs.brew.sh>
Homebrew API: <https://rubydoc.brew.sh>
`brew-cask`(1), `git`(1), `git-log`(1)
## BUGS
See our issues on GitHub:
* **Homebrew/brew**:
<https://github.com/Homebrew/brew/issues>
* **Homebrew/homebrew-core**:
<https://github.com/Homebrew/homebrew-core/issues>