2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Golangの最新版をソースからビルドする

Last updated at Posted at 2018-01-24

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
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?