推荐使用go版本管理工具
gvm
https://github.com/moovweb/gvm
- 支持 linux/mac
- github star 9k
- 是最早的版本, 稳定性好一些
g
https://github.com/voidint/g/blob/master/README_CN.md
- 支持window/linux/mac
- github star 1.3k
- 有段时间使用window进行开发,才了解到这个工具
以上两个工具都可以选择,但个人主要是使用mac,早期习惯了gvm这个工具,下面就介绍下gvm的安装
本地搭建go环境(mac环境)
安装gvm
zsh < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
安装go
注意首次使用gvm需要先有go环境,具体参考下面的命令
# 使用brew安装go环境(需要先安装go环境才可以)
brew install go
# 使用gvm安装任意一个go版本(go1.5以上版本)
gvm install go1.16
# 卸载brew安装的go
brew uninstall go
# 使用gvm安装的go环境
gvm use go1.16 --default
# 查看go版本
go version
或
# 安装指定版本二进制文件
gvm install go1.22.4 -B
# 使用gvm安装的go环境
gvm use go1.22.4 --default
# 查看go版本
go version
go全局配置
# 全局开启module模式 支持on/off/auto
go env -w GO111MODULE=on
# 有时候有些老仓库已经被移除了,可以尝试用下ali的goproxy
# go env -w GOPROXY=https://mirrors.aliyun.com/goproxy,direct
go env -w GOPROXY=https://goproxy.io,direct
# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选)
go env -w GOPRIVATE=*.corp.example.com,github.com/org_private
gvm 配置GOPATH
mkdir -p $HOME/go/{bin,pkg,src}
gvm pkgset create default
gvm pkgset use default
# 在GOPATH前面添加$HOME/go:
# PATH添加配置$HOME/go/bin:
gvm pkgenv default
# 默认使用default配置
echo 'gvm pkgset use default' >> ~/.zshrc
# 修改前
export gvm_pkgset_name="default"
export GOPATH; GOPATH="/Users/chiachan/.gvm/pkgsets/go1.16/default:$GOPATH"
export PATH; PATH="/Users/chiachan/.gvm/pkgsets/go1.16/default/bin:$PATH"
# 修改后
export gvm_pkgset_name="default"
export GOPATH; GOPATH="$HOME/go:/Users/chiachan/.gvm/pkgsets/go1.16/default:$GOPATH"
export PATH; PATH="$HOME/go/bin:/Users/chiachan/.gvm/pkgsets/go1.16/default/bin:$PATH"
常见问题
- 使用gvm或cd命令,频繁出现
ERROR: Invalid or corrupt Go version
分析:没有指定gvm默认go版本导致
解决:执行gvm use go1.22.4 --default
指定默认版本就好了 - 远程ssh发现cd命令失效
分析:与gvm内部的cd命令冲突导致
解决:修改~/.gvm/scripts/gvm-default
文件,
将最后一样注释掉#. "$GVM_ROOT/scripts/env/cd" && cd .