AWS
Bazel

AWSでbazelをインストールする方法

0. 環境

OS: Amazon Linux AMI 2017.09.1
  t2.micro

1. ソースをダウンロード

$ wget https://github.com/bazelbuild/bazel/releases/download/0.9.0/bazel-0.9.0-dist.zip
$ unzip bazel-0.9.0-dist.zip

最新のバージョンは
https://github.com/bazelbuild/bazel/releases
で探してください。
2018/1/18現在は0.9.0

2. コンパイル

2.1 JDK

コンパイルに必要なJDKをインストール。
1.8.0が必要らしい。

$ sudo yum -y install java-1.8.0-openjdk-devel

デフォルトでは1.7.0が設定されているので1.8.0に変えます

$ sudo alternatives --config java
2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.25-0.b18.4.amzn1.x86_64/jre/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

2と入力してEnter

java -versionで1.8.0になったことを確認します。

$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

2.2 bazel

sudo ./compile.sh

でコンパイル
t2.microの場合は以下の2つのエラーが出るはずなので、先に対策しておくとよいと思います。


トラブルシューティング
①もしjava.lang.OutOfMemoryError: Java heap spaceがでたら、この記事を参照してください。
->ソースからbazelをコンパイルする時に"java.lang.OutOfMemoryError: Java heap space"というエラーが出たときの対処法

②もしg++: error trying to exec 'cc1plus': execvp: No such file or directoryというエラーがでたら、

sudo yum install gcc-c++

でgcc-c++をインストールすればOK


最後に、コンパイルされたbazelをパスが通っている/usr/binに移動します。

$ sudo cp output/bazel /usr/bin/

最後に、bazelにパスが通っていることが確認できたら終わりです。

$ which bazel
/usr/bin/bazel

お疲れ様でした!