go编译环境安装

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(只需要gccglibc-devel,不需要Go来编译)。
    • 使用编译好的Go1.4的二进制文件来编译Go1.6。

    步骤

    1. 如果之前已经安装过老版本的Go,清除$GOPATH, $GOROOT变量。

    2. 安装好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
    3. 安装 gccglibc-devel

    • sudo yum install gcc glibc-devel
    1. 从源代码编译安装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
    1. 复制 ~/go 到 $GOROOT_BOOTSTRAP(默认值是~/go1.4
    • cp ~/go ~/go1.4 -rf
    1. 从源代码编译安装Go1.6
    • cd ~/go
    • git clean -dfx
    • git checkout -b 1.6 go1.6
    • cd src
    • ./all.bash
    1. 设置 $GOPATH 以及添加Go二进制路径到 $PATH
    • sudo vi /etc/profile

          # Golang Env
          export PATH=$PATH:/home/xx/go/bin
          export GOPATH=/home/xx/go-projects
      
    1. 重启和测试
    • sudo reboot

    • go version

          go version go1.6 linux/amd64

猜你喜欢

转载自blog.csdn.net/zdf511391565/article/details/79369713