原本是要编译Kubernetes包的,但是由于Kubernetes 1.9.0需要go1.9.1以后,而默认在Yum里安装的只有go1.8.3 ,然而golang1.5以后实现了自编译,也就是用golang开发golang。因此在安装新版本的golang时需要先安装一个golang1.4版本。
kubernetes报的版本问题:
Detected go version: go version go1.8.3 linux/amd64.
Kubernetes requires go1.9.1 or greater.
Please install go1.9.1 or later.
直接编译go1.9.3版 本又提示:
[root@buildpackage src]# ./make.bash
##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find /root/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
我直接就安装了一个go1.4.2.linux-amd64.tar.gz版本:
下载地址,如果能够在墙外下载就最好直接下载:
1.9.3 版本:直接不用麻烦编译;
因为中午下载不了,所以在github下载go-go1.9.3.tar.gz的源码:
首先把原来的go1.8.3卸载了,再解压上面下载的1.4版的并配置好环境变量:
tar xf go1.4.2.linux-amd64.tar.gz
vim ~/.bash_profile
GOROOT_BOOTSTRAP=/root/go
PATH=$PATH:$HOME/bin:$GOROOT_BOOTSTRAP/bin
检查一下版本:
[root@buildpackage ~]# go version
go version go1.4.2 linux/amd64
其实我并不是想要1.4.2的版本,只是用它来编译一下1.9.3的版本。
首先避免出错,安装一些依赖,编译包:
yum install golang gcc-go gcc glibc-devel -y
接下来解压github下载回来的go-go1.9.3.tar.gz,并使用go1.4.2来编译它。
tar xf go-go1.9.3.tar.gz
cd /root/go-go1.9.3/src
./all.bash
完成后有如下提示:
Installed Go for linux/amd64 in /root/go-go1.9.3
Installed commands in /root/go-go1.9.3/bin
*** You need to add /root/go-go1.9.3/bin to your PATH.
现在不需要1.4.2的版本了,直接把之前的环境变量改成1.9.3的路径即可。
[root@buildpackage ~]# go version
go version go1.9.3 linux/amd64
接下来就可以再执行编译kubernetes了。