# 前言
新老项目很多,但是不同项目有不同的 go 版本,在同一个环境管理 go 相当麻烦,后面看文档发现了别人推荐的版本控制工具,基本无感管理 go 版本
# smart-go-dl
Go 多版本管理辅助工具,可以快速安装 Go (次要版本) 的最新版本,并对过期版本进行清理。
项目地址: https://github.com/fsgo/smart-go-dl
# 安装
有 go 环境 使用 go install 安装
go install github.com/fsgo/smart-go-dl@latest |
无 go 环境 直接下载二进制文件运行
https://github.com/fsgo/smart-go-dl/releases
# 配置环境变量
export GOBIN=$HOME/go/bin | |
export PATH=$GOBIN:$PATH |
# 安装不同的 go 版本
smart-go-dl install go1.22.5 |
# bin-auto-switcher
Go 自动切换 go 的版本
项目地址: https://github.com/fsgo/bin-auto-switcher
# 安装
go install github.com/fsgo/bin-auto-switcher/bas@latest |
# 配置
让 bas 替换 go
cd ~/go/bin/ | |
mv go go_backup | |
ln -s bas go |
新增配置 ~/.config/bas/go.toml
[[Rules]] | |
Cmd = "go.latest" | |
[Rules.Spec] | |
GoVersionFile = "go.mod" | |
GoWork = "auto" | |
[[Rules]] | |
Dir = ["~/workspace/fsgo/myserver"] | |
Cmd = "go1.19" |
bas 的本质是替换了 go 的命令,然后通过读取各种配置,比如 go.mod 去判断应该执行的 go 的版本
# 演示
bin-auto-switch go 版本是 go1.22
ddns-go go 版本是 go1.20
直接运行 go 命令就能直接使用

