Go的三种安装方式
- Go源码安装:这是一种标准的软件安装方式
- Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。
- 第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。
最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具GVM,这是目前在这方面做得最好的工具,除非你知道怎么处理。
Go源码安装
在Go的源代码中,有些部分是用Plan9C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。
在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。
在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行sudo apt-get install gcc libc6-dev
来安装编译工具。
在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。
可以直接去官网下载源码,找相应的goVERSION.src.tar.gz
的文件下载,下载之后解压缩到$HOME
目录,执行如下代码:
cd go/src
./all.bash
- 1
- 2
运行all.bash
后出现”ALL TESTS PASSED”字样时才算安装成功。
上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。
如果是Mac或者Unix用户需要设置几个环境变量,如果想重启之后也能生效的话把下面的命令写到.bashrc或者.zshrc里面。
export GOPATH=$HOME/gopath # 设置个人的工作目录,可以包含多个工作目录,取决于你的个人情况。如果你设置了多个工作目录,那么当你在之后 使用 go get(远程包安装命令)时远程包将会被安装在第一个目录下。
export GOROOT=$HOME/go # 安装目录
export PATH=$PATH:$GOROOT/bin
- 1
- 2
- 3
当你设置完毕之后在命令行里面输入go,看到如下图片即说明你已经安装成功(图片)
如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。
Go安装1.4以上的版本出现的问题
个人在安装 go1.6.3的时候,一直 无法 按照前面的步骤安装9,一直 提醒的错误是:
##### 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.6到CentOS 7
在中国网络环境下从源代码安装Go1.6到CentOS 7
背景
- 在当前的中国网络环境下,我们无法访问Google的服务的,包括Golang.org。
- 从第三方网站下载预编译的二进制Go发行版可能存在第三方源代码注入的风险,例如之前的XcodeGhost。
Go
的权威仓库地址是https://go.googlesource.com/go,同时还有一个镜像仓库在https://github.com/golang/go。- 至少在目前,我们还能访问github:-)
问题
- Go1.6的编译过程需要Go1.4的二进来实现 bootstrap(自举)(简单来说: Go需要Go自身来编译)。
解决方案
- 从Github的Go仓库镜像获取Go的源代码。
- 首先编译Go1.4(只需要
gcc
和glibc-devel
,不需要Go来编译)。 - 使用编译好的Go1.4的二进制文件来编译Go1.6。
步骤
如果之前已经安装过老版本的Go,清除
$GOPATH,
$GOROOT
变量。安装好Git。
- 配置
Git
git config --global user.email "email-for-github"
git config --global user.name "user name"
- 创建SSH key,添加Public Key到Github账号。
ssh-keygen -t rsa -b 2048
- 复制
~/.ssh/id_rsa.pub
中的Public Key到github SSH settings以添加新的SSH key
- 配置
安装
gcc
和glibc-devel
sudo yum install gcc glibc-devel
- 从源代码编译安装Go1.4
cd ~/
git clone [email protected]:golang/go.git
cd go
git checkout -b 1.4.3 go1.4.3
cd src
./all.bash
- 复制
~/go
到$GOROOT_BOOTSTRAP
(默认值是~/go1.4
)
cp ~/go ~/go1.4 -rf
- 从源代码编译安装Go1.6
cd ~/go
git clean -dfx
git checkout -b 1.6 go1.6
cd src
./all.bash
- 设置
$GOPATH
以及添加Go二进制路径到$PATH
sudo vi /etc/profile
# Golang Env export PATH=$PATH:/home/xx/go/bin export GOPATH=/home/xx/go-projects
- 重启和测试
sudo reboot
go version
go version go1.6 linux/amd64