/home/tnishinaga/TechMEMO

日々行ったこと、面白かったことを書き留めます。

go言語コンパイラをソースからビルドする

go言語コンパイラのビルド方法が,半年前に触ったときと違ったので,現在の方法をメモっておく.

環境

  • Fedora 21 x86_64
  • Golang 1.4.2 ( c62b003eba484d54c2707b379d29240e5367e98f )

インストール方法

ソースのクローン

半年前はmercurialで管理していた気がするが,いつの間にかgitに移っていた. リポジトリgoogle codeのものとgithubのものがあるが,後者はミラーリポジトリなので,前者からクローンする.

$ cd ~/
$ git clone https://go.googlesource.com/go

ビルド済みGo言語コンパイラのインストール

ここからが半年前と違うところ.

以前はgoコンパイラが既に入っているかいないかにかかわらず, ~/go/src/ 以下で all.bash を実行するだけで,go言語コンパイラをビルドできたような記憶がある. しかし,今は all.bash を実行すると,以下のように ~/go1.4 にgo言語(v1.4)の実行環境を入れるよう怒られる.

$ ./all.bash 
##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find /home/tnishinaga/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
./make.bash: line 121: /home/tnishinaga/go1.4/bin/go: No such file or directory

そのため,go1.4の実行環境を落としてきて ~/go1.4 に置く. go言語コンパイラの実行環境は,以下から持ってこられる.

$ mkdir tmp
$ wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
$ tar zxvf go1.4.2.linux-amd64.tar.gz -C tmp/
$ mv tmp/go ~/go1.4

go言語コンパイラのビルド

後は普通に all.bash を実行するだけ.

$ cd ~/go/src/
$ ./all.bash

ビルドが終わったあとは, .bashrc などに

export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin

と書いておくと,ビルドしたgo言語コンパイラにパスが通って使えるようになる.

以上.