打算做一期go内部函数实现原理讲解,首先要搭建一套go的编译环境,大家常见的都是直接使用官方发布应编译好的文件,这里我们使用源码编译的方式来搭建go环境。
1、准备版本:
https://studygolang.com/dl 下载所需要的版本。
我使用的是go1.10和go1.4,为什么要准备go1.4呢???继续往下看就明白了。
2、编译安装
进入go1.10/src 执行sudo ./all.bash 会报下面错误:
ERROR: Cannot find /root/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
这里提示我们需要先安装go1.4,这下知道前面为什么要准备go1.4版本了吧。
先将go1.4拷贝到机器,然后进入编译目录:cd go1.4/src,开始编译:sudo ./all.bash。编译期间可能会遇到文件权限问题,一一解决掉。
go1.4编译成功后:将go1.4下面的文件拷贝到上面提示的默认路径下:cp -r go1.4/* /root/go1.4/
这里需要设置GOROOT环境变量为go1.4的源码地址。
然后进入go1.10进行编译安装:cd go1.10/src,开始编译:sudo ./all.bash
编译期间会遇到各种权限问题和测试代码不过,一一解决掉,最后编译成功:
Go version is "go1.10", ignoring -next /usr/local/go/api/next.txt
ALL TESTS PASSED
---
Installed Go for linux/amd64 in /usr/local/go
Installed commands in /usr/local/go/bin
*** You need to add /usr/local/go/bin to your PATH.
按照提示将bin设置到PATH环境变量中,最后在配置上GOPATH。
为了保险起见还是查一下版本号确定是我们想要的版本:go version
# go version
go version go1.10 linux/amd64
结束。