--- 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) * [Fedora 25, 26, and CentOS 7](install-redhat.md) * [macOS](install-os-x.md) * [Windows](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 is required. To address the problem of JDK 8 not being available on some machines, Bazel's binary installer embeds a JDK by default. **Note:** Homebrew and Debian packages do not contain the embedded JDK. The shell installers are the only ones with an embedded JDK. Extras: * [Bash completion](#bash) * [zsh completion](#zsh) For more information on using Bazel, see [Getting Started with Bazel](getting-started.html). ## Getting bash completion **Note:** If you installed Bazel using the custom APT repository, the bash completion script is already installed in `/etc/bash_completion.d`. 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. ## 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 ```