Go|go版本匹配错误解决

go版本匹配错误解决
compile: version * does not match go tool version * 【Go|go版本匹配错误解决】由于我的mac是公司的电脑,在收回管理员权限之前,安装了go1.10.4版本,使用pkg安装,默认安装在/usr/local/目录下。后面公司收回了管理员权限。因而我在升级版本是碰到一点小问题。由于没有管理员权限。不能删除已安装的版本, 也不能覆盖安装。因此就放在了自己的家目录下。并将bin路径加入环境变量。go命令能正常使用,但是编译的时候出问题。提示 go tool 版本不匹配。
解决:
在.bash_profile或.profile或其他profile中配置:

export PATH=$HOME/go/bin:$PATH GOTOOLDIR="$HOME/go/pkg/tool/(platform)"

* $HOME/go/bin需要放在前面,不然还是老版本的;platform是对应的系统平台
问题复现
  1. 下载pkg安装包
  2. 没有管理员权限,不能直接安装
  3. 解压包
    3.1. macOS下pkg安装包解压方式:
    # pkgutil --expand go1.10.4.darwin-amd64.pkggo1.10.4 # cd go1.10.4/com.googlecode.go.pkg # tar -xvf Payload # mv usr/local/go ~/usr/local/go

    3.2 tar.gz压缩包解压方式:
    # tar -zxvf go1.10.4.darwin-amd64.tar.gz ~/usr/local

  4. 编辑profile文件
    export PATH=$HOME/go/bin:$PATH GOTOOLDIR="$HOME/go/pkg/tool/(platform)"

  5. 使生效
    # source .profile

  6. 检查
    go version //版本是否正确
    go env // 环境时候正确
    编译文件 // 能否正确编译

    推荐阅读