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是对应的系统平台
问题复现
- 下载pkg安装包
- 没有管理员权限,不能直接安装
- 解压包
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
- 编辑profile文件
export PATH=$HOME/go/bin:$PATH GOTOOLDIR="$HOME/go/pkg/tool/(platform)"
- 使生效
# source .profile
- 检查
go version //版本是否正确
go env // 环境时候正确
编译文件 // 能否正确编译
推荐阅读
- Go|Docker后端部署详解(Go+Nginx)
- GO|GO,GO,GO!
- Go成长之路|go中判断空字符串、nil和len(t)的用法
- go编译tools
- go grpc安装与使用
- goroutine 调度原理
- Go|Go进阶之路——复杂类型
- Go进阶之路——变量
- Go进阶之路——流程控制语句