go 1.4 之前的版本,没有实现自举,由c语言编译构建,安装 c 编译工具链即可
go 1.5 之后的版本,实现自举,需要先安装更早的版本的go,然后编译更新的版本的 go
下面就以在 ubuntu 20.04 中 安装1.4 版本和 1.18 两个版本来介绍其源码安装过程


1.4 版本

cd ~/work/src
wget https://golang.google.cn/dl/go1.4.src.tar.gz
mkdir go1.4 && tar -zxvf go1.4.src.tar.gz -C ./go1.4 --strip-components 1
cd go1.4/src/
CGO_ENABLED=0 CFLAGS='-Wno-implicit-fallthrough -Wno-shift-negative-value' CC=gcc ./all.bash 

修改~/.bashrc 如下:

export GOROOT=~/work/src/go1.4
export GOPATH=~/go
export GOPROXY='https://goproxy.cn'
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

1.18 版本

cd ~/work/src
wget https://golang.google.cn/dl/go1.18.3.src.tar.gz
mkdir go1.8 && tar -zxvf go1.18.3.src.tar.gz -C ./go1.8 --strip-components 1

export GOROOT_BOOTSTRAP=~/work/src/go1.4
cd go1.8/src/
./all.bash

若想用此版本,只需把~/.bashrc 文件中的 go1.4 改成 go1.8 即可

注意:~/.bashrc 修改后若想生效,需执行

source ~/.bashrc