温馨提示×

Debian怎么切换Golang的版本

小樊
34
2026-08-27 22:24:24
栏目: 编程语言

在 Debian 系统中切换 Golang (Go) 版本,通常有以下几种常见且实用的方法。你可以根据自己的需求(是系统级管理还是个人开发环境)选择最合适的一种。


方法一:使用 update-alternatives(推荐,无需第三方工具)

这是 Debian/Ubuntu 系统自带的工具,可以非常优雅地在系统层级管理和切换多个版本的命令行程序(如 gogofmt)。

1. 准备工作:卸载 apt 安装的旧版本(如果有) 为了避免冲突,建议先卸载通过 apt 安装的 Go:

sudo apt remove golang-go golang-any

2. 下载并解压不同版本的 GoGo 官方下载页面 获取你需要的 Linux 版本(以 amd64 为例):

# 下载两个版本作为演示
wget https://go.dev/dl/go1.20.5.linux-amd64.tar.gz
wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz

# 分别解压到不同的目录(例如 /usr/local/go1.20.5 和 /usr/local/go1.21.3)
sudo tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
sudo mv /usr/local/go /usr/local/go1.20.5

sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz
sudo mv /usr/local/go /usr/local/go1.21.3

3. 将版本添加到 update-alternatives

# 注册 go 命令
sudo update-alternatives --install /usr/local/bin/go go /usr/local/go1.20.5/bin/go 100
sudo update-alternatives --install /usr/local/bin/go go /usr/local/go1.21.3/bin/go 200

# 注册 gofmt 命令(可选,但建议)
sudo update-alternatives --install /usr/local/bin/gofmt gofmt /usr/local/go1.20.5/bin/gofmt 100
sudo update-alternatives --install /usr/local/bin/gofmt gofmt /usr/local/go1.21.3/bin/gofmt 200

(注:最后的数字是优先级,数字越大默认优先级越高)

4. 切换版本 运行以下命令,根据提示输入对应的数字即可切换:

sudo update-alternatives --config go
sudo update-alternatives --config gofmt

5. 验证

go version

方法二:使用 GVM (Go Version Manager)(最灵活,适合开发者)

GVM 类似于 Node.js 的 nvm 或 Python 的 pyenv,可以在用户级别轻松安装、卸载和切换 Go 版本。

1. 安装 GVM

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.gvm/scripts/gvm

(如果没安装 curlgit,请先执行 sudo apt install curl git)

2. 安装所需的 Go 版本

# 安装 Go 1.20 和 1.21(GVM 会自动处理依赖和源码编译/二进制下载)
gvm install go1.20.5
gvm install go1.21.3

3. 切换版本

# 临时使用某个版本
gvm use go1.21.3

# 设置默认版本(每次打开终端自动生效)
gvm use go1.21.3 --default

4. 查看已安装版本

gvm list

方法三:使用官方 golang.org/dl 工具(适合临时测试)

如果你只是偶尔需要运行特定的 Go 版本来测试代码,而不想改动系统环境,可以使用 Go 官方提供的版本下载器(要求你系统里已经有一个基础的 Go 环境)。

# 假设你已经有 go 命令,通过它安装其他版本
go install golang.org/dl/go1.21.0@latest

# 下载该版本的 SDK
go1.21.0 download

# 直接使用该版本运行命令(不需要切换系统 PATH)
go1.21.0 version
go1.21.0 run main.go

方法四:手动修改环境变量(最简单粗暴)

如果你不想用任何工具,可以直接把不同版本的 Go 解压到不同目录,然后修改 ~/.bashrc~/.zshrc 里的 PATH 变量。

# 在 ~/.bashrc 中指定你要用的版本路径
export GOROOT=/usr/local/go1.21.3
export PATH=$GOROOT/bin:$PATH

修改后执行 source ~/.bashrc 即可生效。


总结建议

  • 服务器/生产环境:建议使用 方法一 (update-alternatives),稳定且不需要引入第三方脚本。
  • 本地开发/经常需要跨版本测试:强烈建议使用 方法二 (GVM),切换极其方便,且不会影响系统全局环境。
  • 记得在切换版本后,运行 go version 确认切换是否成功,并检查你的 GOPATH 和项目依赖是否需要重新整理。

0