Ubuntu 16.04 でgolang 1.9.3 をビルドしました。
2018.2.19 golang 1.10のビルドを追記しました。
準備
golangはv1.5以降golang自身で書かれているため、ソースからビルドするためにはまずなんとかしてそこで使用できるgolangをインストールする必要があります。
そのためにはいくつか方法があります。
- Ubuntuのリポジトリにあるgolangをapt-get でインストールする
- golang v1.4のソースコードを入手してビルドする
ここではてっとりばやく前者を試しました。
$ sudo apt-get install golang-go
$ which go
/usr/bin/go
$ go version
go version go1.6.2 linux/amd64
golang のソースを入手してビルド
wget https://dl.google.com/go/go1.9.3.src.tar.gz
tar xf go1.9.3.src.tar.gz
cd go/src
GOROOT_BOOTSTRAP=/usr/lib/go ./make.bash
$ ../bin/go version
go version go1.9.3 linux/amd64
go/bin に実行ファイルが置かれるので、このディレクトリをPATHに追加すればインストール完了。
ビルドとテストを行うには make.bashの代わりにall.bash を実行します。(非力なマシンではテストにけっこう時間がかかります。)
GOROOT_BOOTSTRAP=/usr/lib/go ./all.bash
追加情報(2018.1.30)
メモリ600MBの仮想マシンでビルドしたら、out of memory error でビルドが失敗しました。
1.7GBに増やしたら成功しました。
追加情報(2018.2.19)
golang 1.10ではGOROOT_BOOTSTRAPを明示的に指定しなくても、現在のPATHにgoコマンドがあれば、それを使ってくれるように変わりました。
$ which go
/home/koba/work/go/go1.9/bin/go
$ cd src
$ ./make.bash
Building Go cmd/dist using /home/koba/work/go/go1.9.
Building Go toolchain1 using /home/koba/work/go/go1.9.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/amd64.
---
Installed Go for linux/amd64 in /home/koba/work/go/go1.10
Installed commands in /home/koba/work/go/go1.10/bin
c$ cd ../bin
$ ./go version
go version go1.10 linux/amd64