Ubuntu管理Golang编译版本的常用方法
update-alternatives管理多版本update-alternatives是Ubuntu系统提供的版本管理工具,可方便地切换不同版本的Go编译器。
go1.20.3.linux-amd64.tar.gz、go1.21.0.linux-amd64.tar.gz),并解压至/usr/local目录:sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
b. 使用update-alternatives注册Go版本:sudo update-alternatives --install /usr/bin/go go /usr/local/go1.20.3/bin/go 1
sudo update-alternatives --install /usr/bin/go go /usr/local/go1.21.0/bin/go 2
c. 切换Go版本:运行sudo update-alternatives --config go,根据提示选择对应版本的编号即可。go version确认当前使用的Go版本。gvm(Go Version Manager)管理多版本gvm是专为Go设计的版本管理工具,支持多版本安装、切换及卸载,操作便捷。
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.gvm/scripts/gvm # 加载环境变量
gvm安装指定版本的Go(如1.20.3、1.21.0):gvm install go1.20.3
gvm install go1.21.0
gvm use命令切换版本,--default参数可设为默认版本:gvm use go1.20.3 # 临时切换
gvm use go1.21.0 --default # 设为默认版本
go version确认当前版本。asdf管理多版本asdf是跨语言的版本管理工具,支持Go、Python等多种语言,适合需要统一管理多语言版本的用户。
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc # 加载环境变量
echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
source ~/.bashrc
asdf添加Go插件:asdf plugin-add golang https://github.com/asdf-community/asdf-golang.git
asdf安装指定版本的Go:asdf install golang 1.20.3
asdf install golang 1.21.0
asdf global golang 1.21.0 # 全局默认版本
asdf local golang 1.20.3 # 当前目录版本(生成.golang-version文件)
go version确认当前版本。若需完全自定义Go版本的安装路径及环境变量,可选择手动管理。
/usr/local/go1.20、/usr/local/go1.21):wget https://golang.org/dl/go1.20.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz
~/.bashrc或~/.zshrc,通过修改GOROOT(Go安装路径)和PATH(可执行文件路径)切换版本:export GOROOT=/usr/local/go1.21.0 # 切换GOROOT指向目标版本
export PATH=$GOROOT/bin:$PATH # 更新PATH
source ~/.bashrc使配置生效。go version确认当前版本。build-essential、git):sudo apt install -y build-essential git
go mod init)管理项目依赖,避免版本兼容性问题。