<% # 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 didn't include with macOS. ## 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. ### `install` <formula>: Install <formula>. <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. ### `uninstall` <formula>: Uninstall <formula>. ### `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. ## COMMANDS <%= commands %> ## DEVELOPER COMMANDS <%= developer_commands %> ## GLOBAL OPTIONS <%= global_options %> ## OFFICIAL EXTERNAL COMMANDS ### `bundle` <subcommand>: 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> ### `cask` <subcommand>: Install macOS applications distributed as binaries. See `brew-cask`(1). **Homebrew/homebrew-cask**: <https://github.com/Homebrew/homebrew-cask> ### `services` <subcommand>: Manage background services with macOS' `launchctl`(1) daemon manager. See `brew services --help`. **Homebrew/homebrew-services**: <https://github.com/Homebrew/homebrew-services> ## CUSTOM EXTERNAL COMMANDS 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: Homebrew can install formulae via URL, e.g. `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. ## ENVIRONMENT 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`. * `HOMEBREW_ARCH`: 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`). * `HOMEBREW_ARTIFACT_DOMAIN`: 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. *Default:* `300`. * `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. * `HOMEBREW_BOTTLE_DOMAIN`: 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/`. * `HOMEBREW_BROWSER`: If set, Homebrew uses this setting as the browser when opening project homepages, instead of the OS default browser. * `HOMEBREW_CACHE`: If set, instructs Homebrew to use the specified directory as the download cache. *Default:* `~/Library/Caches/Homebrew`. * `HOMEBREW_CURLRC`: 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. * `HOMEBREW_FORCE_BREWED_CURL`: 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. * `HOMEBREW_FORCE_VENDOR_RUBY`: 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. * `HOMEBREW_GITHUB_API_TOKEN`: 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. *Default:* the beer emoji. * `HOMEBREW_LOGS`: 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> * `HOMEBREW_NO_AUTO_UPDATE`: 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. * `HOMEBREW_NO_GITHUB_API`: 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. * `HOMEBREW_PRY`: 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. * `no_proxy`: 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. ## USING HOMEBREW BEHIND A PROXY 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 And for an authenticated HTTP proxy: export http_proxy=http://$USER:$PASSWORD@$HOST:$PORT ## SEE ALSO Homebrew Documentation: <https://docs.brew.sh> Homebrew API: <https://rubydoc.brew.sh> `brew-cask`(1), `git`(1), `git-log`(1) ## AUTHORS <%= lead.concat("\n") %> <%= plc.concat("\n") %> <%= tsc.concat("\n") %> <%= linux.concat("\n") %> <%= maintainers.concat("\n") %> <%= alumni.concat("\n") %> ## BUGS See our issues on GitHub: * **Homebrew/brew**: <https://github.com/Homebrew/brew/issues> * **Homebrew/homebrew-core**: <https://github.com/Homebrew/homebrew-core/issues>