blob: cca725ba3e4abb05412fe7a3d01096f2adb597c4 [file] [log] [blame] [view]
---
layout: documentation
---
# Installing Bazel
## System Requirements
Supported platforms:
* Ubuntu Linux
* Mac OS X
Java:
* Java JDK 7 or later
## Downloading Bazel
Clone the Bazel repo from GitHub:
```
$ cd $HOME
$ git clone https://github.com/google/bazel.git
```
## Building Bazel
### Building Bazel on Ubuntu
To build Bazel on Ubuntu:
#### 1. Install JDK 7:
**Ubuntu Utopic (14.10) and Trusty (14.04 LTS).** To install OpenJDK 7:
```
$ sudo apt-get install openjdk-7-jdk openjdk-7-source
```
#### 2. Install required packages:
```
$ sudo apt-get install pkg-config zip g++ zlib1g-dev
```
#### 3. Build Bazel:
```
$ cd bazel
$ ./compile.sh
```
If this fails to find a correct Java version, then try to
set the `JAVA_HOME` environment variable.
Find the Java `bin` directory using `readlink -f $(which javac)`
and use `javac -version` to verify that you have the right JDK version (1.7+).
Then set the `JAVA_HOME` environment variable to the `bin` directory
parent.
For example, if the path is `/usr/lib/jvm/jdk1.7.0/bin/javac`, set the
`JAVA_HOME` variable to `/usr/lib/jvm/jdk1.7.0`:
```
$ export JAVA_HOME=/usr/lib/jvm/jdk1.7.0
```
You can also add this line to your `~/.bashrc` file.
### Building Bazel on OS X
Bazel on Mac OS X requires:
* The Xcode command line tools. Xcode can be downloaded from the
[Apple Developer Site](https://developer.apple.com/xcode/downloads/).
* MacPorts or Homebrew for installing required packages.
* An installation of JDK 7.
* For `objc_*` and `ios_*` rule support, you must have Xcode 6.1 or later with
iOS SDK 8.1 installed on your system.
To build Bazel on Mac OS X:
```
$ cd bazel
$ ./compile.sh
```
Then you can run Bazel:
```
$ ./output/bazel help
```
## Running Bazel
The Bazel executable is located at `output/bazel` in the Bazel home directory.
It's a good idea to add this path to your default paths, as follows:
```bash
$ export PATH="$PATH:$HOME/bazel/output"
```
You can also add this command to your `~/.bashrc` file.
### Getting bash completion
Bazel comes with a bash completion script. To install it:
1. Build it with Bazel: `bazel build //scripts:bazel-complete.bash`.
2. Copy the script `bazel-bin/scripts/bazel-complete.bash` 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 simply insert `source /path/to/bazel-complete.bash` in your
`~/.bashrc` file (under OS X, put it in your `~/.bash_profile` file).
### 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
```
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
```
For more information, see [Getting started](getting-started.html).