从源代码构建最新版本的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
广告
将在 10 秒后关闭
bannerAds