aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/versions/master/docs/install.md
blob: 5035c04c27cd7d7193c817f26baf601b7340ebd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
---
layout: documentation
title: Installing Bazel
---

# Installing Bazel

Supported platforms:

*   [Ubuntu Linux (Wily 15.10 and Trusty 14.04 LTS)](#ubuntu)
*   [Mac OS X](#mac-os-x)
*   [Windows (highly experimental)](#windows)

For other platforms, you can try to [compile from source](#compiling-from-source).

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](getting-started.html).


## <a name="ubuntu"></a>Ubuntu

Install Bazel on Ubuntu using one of the following methods:

  * [Using our custom APT repository](#install-on-ubuntu)
  * [Using binary installer](#install-with-installer-ubuntu)
  * [Compiling Bazel from source](#compiling-from-source)

### <a name="install-on-ubuntu"></a> Using Bazel custom APT repository (recommended)

#### 1. Install JDK 8

If you are running **Ubuntu Wily (15.10)**, you can skip this step.
But for **Ubuntu Trusty (14.04 LTS)** users, since OpenJDK 8 is not available on Trusty, please install Oracle JDK 8:

```
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
```

Note: You might need to `sudo apt-get install software-properties-common` if you don't have the `add-apt-repository` command. See [here](http://manpages.ubuntu.com/manpages/wily/man1/add-apt-repository.1.html).

#### 2. Add Bazel distribution URI as a package source (one time setup)

```
$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
$ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
```

If you want to use the JDK 7, please replace `jdk1.8` with `jdk1.7` and if you want to install the testing version of Bazel, replace `stable` with `testing`.

#### 3. Install and update Bazel

`$ sudo apt-get update && sudo apt-get install bazel`

Once installed, you can upgrade to newer version of Bazel with:

`$ sudo apt-get upgrade bazel`

### <a name="install-with-installer-ubuntu"></a>Install with Installer

We provide binary installers on our
<a href="https://github.com/bazelbuild/bazel/releases">GitHub releases page</a>

The installer only contains Bazel binary, some additional libraries are required to be installed on the machine to work.


#### 1. Install JDK 8

**Ubuntu Trusty (14.04 LTS).** OpenJDK 8 is not available on Trusty. To
install Oracle JDK 8:

```
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
```

Note: You might need to `sudo apt-get install software-properties-common` if you don't have the `add-apt-repository` command. See [here](http://manpages.ubuntu.com/manpages/wily/man1/add-apt-repository.1.html).

**Ubuntu Wily (15.10).** To install OpenJDK 8:

```
$ sudo apt-get install openjdk-8-jdk
```

#### 2. Install other required packages

```
$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip
```

#### 3. Download Bazel

Download the [Bazel installer](https://github.com/bazelbuild/bazel/releases) for
your operating system.

#### 4. Run the installer

Run the installer:

<pre>
$ chmod +x bazel-<em>version</em>-installer-<em>os</em>.sh
$ ./bazel-<em>version</em>-installer-<em>os</em>.sh --user
</pre>

The `--user` flag installs Bazel to the `$HOME/bin` directory on your
system and sets the `.bazelrc` path to `$HOME/.bazelrc`. Use the `--help`
command to see additional installation options.

#### 5. Set up your environment

If you ran the Bazel installer with the `--user` flag as above, the Bazel
executable is installed in your `$HOME/bin` directory. It's a good idea to add
this directory to your default paths, as follows:

```bash
$ export PATH="$PATH:$HOME/bin"
```

You can also add this command to your `~/.bashrc` file.



## <a name="mac-os-x"></a>Mac OS X

Install Bazel on Mac OS X using one of the following methods:

  * [Using Homebrew](#install-on-mac-os-x-homebrew)
  * [Using binary installer](#install-with-installer-mac-os-x)
  * [Compiling Bazel from source](#compiling-from-source)


### <a name="install-on-mac-os-x-homebrew"></a>Using Homebrew

#### 1. Install Homebrew on Mac OS X (one time setup)

`$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`

#### 2. Install Bazel Homebrew Package

`$ brew install bazel`

Once installed, you can upgrade to newer version of Bazel with:

`$ brew upgrade bazel`


### <a name="install-with-installer-mac-os-x"></a>Install with installer

We provide binary installers on our
<a href="https://github.com/bazelbuild/bazel/releases">GitHub releases page</a>

The installer only contains Bazel binary, some additional libraries are required to be installed on the machine to work.

#### 1. Install JDK 8

JDK 8 can be downloaded from
[Oracle's JDK Page](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html).
Look for "Mac OS X x64" under "Java SE Development Kit". This will download a
DMG image with an install wizard.

#### 2. Install XCode command line tools

Xcode can be downloaded from the
[Apple Developer Site](https://developer.apple.com/xcode/downloads/), which will
redirect to the App Store.

For `objc_*` and `ios_*` rule support, you must have Xcode 6.1 or later with
iOS SDK 8.1 installed on your system.

Once XCode is installed you can trigger signing the license with the following
command:

```
$ sudo gcc --version
```

#### 3. Download Bazel

Download the [Bazel installer](https://github.com/bazelbuild/bazel/releases) for
your operating system.

#### 4. Run the installer

Run the installer:

<pre>
$ chmod +x bazel-<em>version</em>-installer-<em>os</em>.sh
$ ./bazel-<em>version</em>-installer-<em>os</em>.sh --user
</pre>

The `--user` flag installs Bazel to the `$HOME/bin` directory on your
system and sets the `.bazelrc` path to `$HOME/.bazelrc`. Use the `--help`
command to see additional installation options.

#### 5. Set up your environment

If you ran the Bazel installer with the `--user` flag as above, the Bazel
executable is installed in your `$HOME/bin` directory. It's a good idea to add
this directory to your default paths, as follows:

```bash
$ export PATH="$PATH:$HOME/bin"
```

You can also add this command to your `~/.bashrc` file.


## <a name="windows"></a>Windows

Windows support is highly experimental. Known issues are [marked with
label "Windows"](https://github.com/bazelbuild/bazel/issues?q=is%3Aissue+is%3Aopen+label%3A%22category%3A+multi-platform+%3E+windows%22)
on GitHub issues.

We currently support only 64 bit Windows 7 or higher and we compile Bazel as a
msys2 binary.

Install Bazel on Windows using one of the following methods:

  * [Using Chocolatey](#install-on-windows-chocolatey)
  * [Using binary distribution](#download-binary-windows)
  * [Compiling Bazel from source](#compiling-from-source) -- make sure
    your machine meets the [requirements](windows.md#requirements)


### <a name="install-on-windows-chocolatey"></a>Install on Windows using Chocolatey

You can install the unofficial package using the
[chocolatey](https://chocolatey.org) package manager:

```sh
choco install bazel
```

This will install the latest available version of bazel, and dependencies.

This package is experimental; please provide feedback to `@petemounce` in GitHub
issue tracker. See the [Chocolatey installation and package
maintenance](windows-chocolatey-maintenance.md) guide for more information.


### <a name="download-binary-windows"></a>Download a precompiled binary

We provide binary versions on our
<a href="https://github.com/bazelbuild/bazel/releases">GitHub releases page</a>

This is merely the Bazel binary. You'll need additional software (e.g. msys2
shell) and some setup in your environment to run Bazel. See these requirements
on our [Windows page](windows.md#requirements).


## <a name="compiling-from-source"></a>Compiling from source

The standard way of compiling a release version of Bazel from source
is to use a distribution archive. Download `bazel-<VERSION>-dist.zip`
from
the [release page](https://github.com/bazelbuild/bazel/releases) for
the desired version (for releases 0.4.0 and earlier: download the "source
code" zip archive and note that it will only work for the supported
architectures as it contains binaries). We recommend to also verify
the signature made by our
[release key](https://bazel.build/bazel-release.pub.gpg) 48457EE0.

Unzip the archive and call `bash ./compile.sh`; this will create a
bazel binary in `bazel-bin/src/bazel`. This binary is self-contained,
so it can be copied to a directory on the PATH (e.g.,
`/usr/local/bin`) or used in-place.


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

## <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
    ```

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
    ```