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