Ubuntu 安装 gvm 管理 Go 语言开发环境

文章目录

  • 简介
  • 安装依赖
  • [安装 GVM](#安装 GVM)
  • [安装 Go 版本](#安装 Go 版本)
  • [Go 环境变量](#Go 环境变量)

简介

本文详细介绍如何在Ubuntu系统上使用GVM(Go Version Manager)搭建Go语言开发环境,包括GVM的安装、配置环境变量、安装和切换不同版本的Go语言,以及常用开发环境优化技巧。通过GVM,你可以轻松管理多个Go版本,满足不同项目的开发需求,提高Go开发效率和环境可控性。

安装依赖

bash 复制代码
sudo apt update
sudo apt install -y curl git mercurial make binutils bison gcc build-essential

安装 GVM

bash 复制代码
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
  • 安装完成后,重新加载 shell 配置
bash 复制代码
source ~/.gvm/scripts/gvm
  • 可以在 ~/.bashrc 或 ~/.zshrc 中添加这一行,让每次打开终端都自动加载
bash 复制代码
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
bash 复制代码
gvm version

安装 Go 版本

  • 查看可安装的 Go 版本
bash 复制代码
gvm listall
  • 安装指定版本
bash 复制代码
gvm install go1.25.0 -B  # -B 表示二进制安装,可加快速度
  • 列出已安装版本
bash 复制代码
gvm list
  • 设置默认版本
bash 复制代码
gvm use go1.25.0 --default
  • 查看 go 版本
bash 复制代码
go version
  • 切换 Go 版本
bash 复制代码
gvm use go1.24.0
  • 清理 Go modules 缓存
bash 复制代码
gvm use go1.24.2 && go clean -modcache
  • 卸载 Go 版本
bash 复制代码
gvm use go1.24.2 && go clean -modcache
gvm uninstall go1.24.2

Go 环境变量

bash 复制代码
vim ~/.bashrc
bash 复制代码
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
export GO_BINARY_BASE_URL=https://mirrors.aliyun.com/golang/
export G_MIRROR=https://golang.google.cn/dl/

[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
export GOROOT_BOOTSTRAP=$GOROOT
bash 复制代码
source ~/.bashrc
  • Go 环境信息
bash 复制代码
go env
相关推荐
0xDevNull1 天前
Linux切换JDK版本详细教程
linux
进击的丸子1 天前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
字节逆旅2 天前
ubuntu应用深度守护
ubuntu
Johny_Zhao3 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1234 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑4 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件4 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号4 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash5 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI5 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github