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
相关推荐
lsh曙光5 分钟前
防火墙-iptables
linux
阳光九叶草LXGZXJ6 分钟前
达梦数据库-报错-12-[-7184]:对象定义[XXX]被修改,版本检查失败
linux·运维·服务器·数据库·sql·学习
小此方16 分钟前
Re:Linux系统篇(四十九)线程篇 · 二:为什么现代操作系统选择分页式存储?分页如何解决物理内存碎片?分页结构如何演化到页表、页目录、MMU?
linux·运维·驱动开发
Huangjin007_1 小时前
【Linux 系统篇(十一)】基础开发工具(六) —— 版本控制器 Git
linux·运维·git
j7~1 小时前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
乌萨奇也要立志学C++9 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
RisunJan11 小时前
Linux命令-slabtop(实时显示内核 slab 缓存信息)
linux
xcLeigh11 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
蚰蜒螟14 小时前
从内核源码看Linux启动:chroot、execve与MS_MOVE的协奏曲
linux·服务器·网络
酷可达拉斯14 小时前
自动化运维-ansible配置文件与主机清单
linux·运维·自动化·ansible