blob: dd69f7a2704f3e36098063fd604618e88bdd3f22 [file] [view]
---
layout: documentation
title: Installing Bazel
---
# Installing Bazel
See the instructions for installing Bazel on:
* [Ubuntu Linux (16.04, 15.10, and 14.04)](install-ubuntu.md)
* [Mac OS X](install-os-x.md)
* [Windows (highly experimental)](install-windows.md)
For other platforms, you can try to [compile from source](install-compile-source.md).
Required Java version:
* Java JDK 8 or later ([JDK 7](#jdk7) is still supported
but deprecated).
Extras:
* [Bash completion](#bash)
* [zsh completion](#zsh)
For more information on using Bazel, see
[Getting Started with Bazel](getting-started.html).
## <a name="jdk7"></a>Using Bazel with JDK 7 (deprecated)
Bazel version _0.1.0_ runs without any change with JDK 7. However, future
version will stop supporting JDK 7 when our CI cannot build for it anymore.
The installer for JDK 7 for Bazel versions after _0.1.0_ is labeled
<pre>
./bazel-<em>version</em>-jdk7-installer-<em>os</em>.sh
</pre>
If you wish to use JDK 7, follow the same steps as for JDK 8 but with the _jdk7_ installer or using a different APT repository as described [here](#1-add-bazel-distribution-uri-as-a-package-source-one-time-setup).
## <a name="bash"></a>Getting bash completion
Bazel comes with a bash completion script, which the installer copies into the
`bin` directory. If you ran the installer with `--user`, this will be
`$HOME/.bazel/bin`. If you ran the installer as root, this will be
`/usr/local/bazel/bin`.
Copy the `bazel-complete.bash` script to your completion folder
(`/etc/bash_completion.d` directory under Ubuntu). If you don't have a
completion folder, you can copy it wherever suits you and insert
`source /path/to/bazel-complete.bash` in your `~/.bashrc` file (under OS X, put
it in your `~/.bash_profile` file).
If you built Bazel from source, the bash completion target is in the `//scripts`
package:
1. Build it with Bazel: `bazel build //scripts:bazel-complete.bash`.
2. Copy the script `bazel-bin/scripts/bazel-complete.bash` to one of the
locations described above.
## <a name="zsh"></a>Getting zsh completion
Bazel also comes with a zsh completion script. To install it:
1. Add this script to a directory on your $fpath:
```
fpath[1,0]=~/.zsh/completion/
mkdir -p ~/.zsh/completion/
cp scripts/zsh_completion/_bazel ~/.zsh/completion
```
You may have to call `rm -f ~/.zcompdump; compinit`
the first time to make it work.
2. Optionally, add the following to your .zshrc.
```
# This way the completion script does not have to parse Bazel's options
# repeatedly. The directory in cache-path must be created manually.
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ~/.zsh/cache
```