golang 多版本管理工具
docker run -it ghcr.io/jaronnie/gvm:latest bashgo install github.com/jaronnie/gvm@latest# linux amd64
curl -L -o gvm.tar.gz https://github.com/jaronnie/gvm/releases/download/v1.8.0/gvm_1.8.0_Linux_x86_64.tar.gz
# darwin amd64
curl -L -o gvm.tar.gz https://github.com/jaronnie/gvm/releases/download/v1.8.0/gvm_1.8.0_Darwin_x86_64.tar.gz
# darwin arm64(m 系列)
curl -L -o gvm.tar.gz https://github.com/jaronnie/gvm/releases/download/v1.8.0/gvm_1.8.0_Darwin_arm64.tar.gztar -zxvf gvm.tar.gz
mv gvm /usr/local/bin# 下载 Windows 版本
# amd64
Invoke-WebRequest -Uri "https://github.com/jaronnie/gvm/releases/download/v1.8.0/gvm_1.8.0_Windows_x86_64.zip" -OutFile "gvm.zip"
# arm64
Invoke-WebRequest -Uri "https://github.com/jaronnie/gvm/releases/download/v1.8.0/gvm_1.8.0_Windows_arm64.zip" -OutFile "gvm.zip"
# 解压
Expand-Archive -Path gvm.zip -DestinationPath $env:USERPROFILE\gvm\bin
# 添加到 PATH (需要管理员权限,或者手动添加到系统环境变量)
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:USERPROFILE\gvm\bin", "User")gvm init
# 如果执行失败, 手动指定 shell 类型
# gvm init bash让环境变量生效
# zsh
source ~/.zshrc
# bash
source ~/.bashrc# 初始化 gvm (使用 PowerShell)
gvm init powershell
# 让环境变量生效 (重启 PowerShell 或运行)
. $PROFILE注意: Windows 上使用 gvm activate 命令可能需要管理员权限来创建符号链接。如果没有管理员权限,建议启用 Windows 10/11 的开发者模式。
# zsh:
# echo "autoload -U compinit; compinit" >> ~/.zshrc
gvm completion zsh > "${fpath[1]}/_gvm"
# linux bash:
gvm completion bash > /etc/bash_completion.d/gvm# PowerShell 补全支持
gvm completion powershell > $env:USERPROFILE\Documents\WindowsPowerShell\Modules\gvm\gvm.ps1# will install go 1.23.5
gvm install go1.23.5
# install offline, default package file path is $HOME/gvm
gvm install go1.23.5 --offline
# install offline, package file path is .
gvm install go1.23.5 --offline -p .# list local go
gvm list
# list remote go
gvm list --remote
# list remote go with limit number
gvm list --remote -n 100
# list all
gvm list --remote --all# will activate go 1.23.5 environment
gvm activate go1.23.5gvm uninstall go1.23.5cat $HOME/gvm/.gvmrc
# get env
export GOROOT=$HOME/gvm/goroot
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/gvm
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBINcat $env:USERPROFILE\gvm\.gvmrc.ps1
# get env
$env:GOROOT = "$env:USERPROFILE\gvm\goroot"
$env:PATH = "$env:PATH;$env:GOROOT\bin"
$env:GOPATH = "$env:USERPROFILE\gvm"
$env:GOBIN = "$env:GOPATH\bin"
$env:PATH = "$env:PATH;$env:GOBIN"ls $HOME/gvm/go*ls $env:USERPROFILE\gvm\go*gvm config --registry https://mirrors.aliyun.com/golang# centos
yum -y install bash-completion# gvm init <shellType>
gvm init bashgvm completion bash | sudo tee /etc/bash_completion.d/gvm > /dev/null