Windows 下 golang 多版本管理
golang1.15golangWindows
如果你在以下操作过程中,发现命令不生效,可以新开一个命令行窗口进行重试。
接下来会给大家介绍我尝试过的 4 种方案。 最好的方案是第四个,第一、三个方案失败了。
建目录 改 PATH
在Windows 安装好 golang,在 cmd 通过运行
$ go verstion
go version go1.15.2 windows/amd64
gobingo.exe
C:\Go1.13
运行新下载的安装程序
UninstallPATH
输入我们给他配置的新目录
C:\Go1.13C:\Go
Go1.15.2C:\Go1.15.2
所以通过多个目录安装不同版本golang的办法是行不通的。
go get
这个是官方建议!
# 还能 get 其他版本的golang
$ go get golang.org/dl/go1.15.2
# 下载这一步不能少
$ go1.15.2 download
# 检查下吧
$ go1.15.2 version
go version go1.15.2 windows/amd64
# 默认的 golang 版本
$ go version
go version go1.13.14 windows/amd64
go1.15.2.exe%USERPROFILE%\go\bin
注意以上以上方法需要访问 google 的服务,所以你懂的。
你不仅要设置 http代理,还需要设置 git 的全局代理!
gvm
以下命令均在 git bash 环境运行,不是 windows cmd 环境!
安装
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# 代理访问
$ bash < <(curl -x socks5://james:cats@myproxy.com:8080 -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Cloning from https://github.com/moovweb/gvm.git to /c/Users/wojia/.gvm
Created profile for existing install of Go at C:\Users\wojia\.g\go
Installed GVM v1.0.22
Please restart your terminal session or to get started right away run
`source /c/Users/w/.gvm/scripts/gvm`
source /c/Users/w/.gvm/scripts/gvm
$ cat /c/Users/w/.gvm/scripts/gvm
export GVM_ROOT=/c/Users/w/.gvm
. $GVM_ROOT/scripts/gvm-default
这显然是一个配置脚本。
配置
在 Windows 新增 GVM_ROOT 环境变量后,看看这个配置脚本。
cat $GVM_ROOT/scripts/gvm-default
unset GOROOT
unset GOARCH
unset GOOS
unset GOPATH
unset GOBIN
unset gvm_go_name
unset gvm_pkgset_name
mkdir -p "$GVM_ROOT/logs" > /dev/null 2>&1
mkdir -p "$GVM_ROOT/gos" > /dev/null 2>&1
mkdir -p "$GVM_ROOT/archive" > /dev/null 2>&1
mkdir -p "$GVM_ROOT/archive/package" > /dev/null 2>&1
mkdir -p "$GVM_ROOT/environments" > /dev/null 2>&1
export GVM_VERSION=$(cat "$GVM_ROOT/VERSION")
export PATH="$GVM_ROOT/bin:$PATH"
export GVM_PATH_BACKUP="$PATH"
[ -f "$GVM_ROOT/environments/default" ] && . "$GVM_ROOT/environments/default"
. "$GVM_ROOT/scripts/env/gvm"
GVM_VERSIONGVM_PATH_BACKUPPATH
使用
配置好后,试一下。
$ gvm install go1.4
C:\Users\w\.gvm/scripts/functions: line 3: C:\Users\w\.gvm/scripts/function/*: No such file or directory
看来 shell 脚本没有针对 Windows 做调整,看来 gvm 没有对 Windows 做兼容。
g
最后来看看 g
安装
windows 的话,就直接上 github release 页面下载目标文件:
g.exePATH
$ g -v
g version 1.2.0
# 安装成功!
配置
C:/Go/binPATH%USERPROFILE%\.g\go\bin
GOROOTGOPATH
C:\Users\w\.g\go
使用
stable
$ g ls-remote stable
1.13.15
1.14.7
1.14.7
$ g install 1.14.7
Downloading 100% |███████████████| (119/119 MB, 9.939 MB/s) [12s:0s]
Computing checksum with SHA256
Checksums matched
Now using go1.14.7
查询已安装到本地的 go版本
$ g ls
1.7.6
1.11.13
1.12.17
1.13.15
1.14.6
* 1.14.7
查询可供安装的所有go版本
$ g ls-remote
1
1.2.2
1.3
1.3.1
... // 省略若干版本
1.14.5
1.14.6
* 1.14.7
1.15rc1
切换到另一个已安装的go版本
$ g use 1.14.6
go version go1.14.6 darwin/amd64
卸载一个已安装的go版本
$ g uninstall 1.14.7
Uninstalled go1.14.7
总结
Windowsgolanggolanggoshell
gvmWindowsPATH