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.

  • 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:

$ 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.