从源代码构建 Go 开发环境
Go 1.5 之前的版本
安装C 语言开发环境
在Go 1.5 之前的版本(比如 1.3、1.4),都会部分的依赖 C 语言的工具链,所以如果你有C 语言的开发环境,就可以直接构建 Go 的开发环境了。如果没有 C 语言的开发环境,那就先安装C 语言的开发环境。
#我的目标机器是centos
yum install gcc
建立 Go 的目录结构
基本目录是这样的
$HOME/golang
|--3rd
|--go
|--own
因为我们还要安装 Go 1.5 之后的版本,需要向后兼容,所以我们需要把目录进行一下修改。添加版本目录。并且把go 指向我们当前使用的Go 版本目录。修改后的目录结构如下:
$HOME/golang
|--3rd
|--go -> go1.
|--go1.
|--own
此时的 go 目录是软链接,指向 go1.4。我是使用下载好的 Go 源码进行安装的,所以首先把源码解压为go1.4目录。
环境变量
GOPATH=$HOME/golang/3rdpkg:$HOME/golang/go:$HOME/golang/own
按照这样的配置,当使用 go get 获取 Go 包的时候,会首先导入到 $GOPATH 的第一个路径,也就是 3rdpkg 目录下。便于把第三方包和自己的项目区分开来。
设置 GOROOT
GOROOT=$HOME/golang/go
设置 PATH 变量
PATH=$PATH:$GOROOT/bin/
此时完整的环境变量设置为
GOPATH=$HOME/golang/3rdpkg:$HOME/golang/go:$HOME/golang/own
GOROOT=$HOME/golang/go
PATH=$PATH:$GOROOT/bin
安装 Go 1.4
cd $HOME/golang/go/src
./all.bash
执行完成之后,Go 1.4 就部署完成了。
Go 1.5 之后的版本
在 Go 1.5 以及之后的版本都移除了对 C 语言的依赖,而是使用 Go 编译新的Go 语言版本。所以我们的目录结构需要再做一下更改,让 Go 1.4来帮助我们构建新的Go 环境。
因为我们的目标是Go 1.5之后的版本,所以1.6 、1.7都是适用的,结下来我们编译最新的Go 1.7 环境。那我们的目录结构就是下面的样子了:
$HOME/golang
|--3rd
|--go -> go1.
|--go-bootstrap -> go1.
|--go1.
|--go1.
|--own
环境变量也做相应的修改
GOPATH=$HOME/golang/3rdpkg:$HOME/golang/go:$HOME/golang/own
GOROOT=$HOME/golang/go
PATH=$PATH:$GOROOT/bin
GOROOT_BOOTSTRAP=$HOME/golang/go-bootstrap cd $HOME/golang/go/src
./all.bash
参考 这里