从源代码构建最新版本的Golang
我在Ubuntu 16.04上构建了golang 1.9.3。
2018.2.19追加了golang 1.10的构建。
备好了。
有几种方法可以实现这一目的,因为自Golang 1.5版本以后,Golang本身就是用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中,将此目录添加到路径中即可完成安装。
为了进行构建和测试,请运行all.bash而不是make.bash。(在较慢的机器上执行测试可能需要相当长的时间。)
GOROOT_BOOTSTRAP=/usr/lib/go ./all.bash
补充信息(2018年1月30日)
我在600MB内存的虚拟机上构建时,由于内存不足错误导致构建失败。
将内存增加到1.7GB后成功构建。
添加额外信息(2018年2月19日)
在Golang 1.10版本中,即使不明确指定GOROOT_BOOTSTRAP,只要在当前路径中存在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