在 Ubuntu 下装好 Go 之后,很多问题其实都卡在“命令能不能直接用”“项目和工具装到哪里”这两件事上。要把环境配顺,核心就是理清 GOROOT、GOPATH 和 PATH 三个变量分别负责什么,再用几条命令验证结果是否符合预期。
下面按实际操作顺序展开:先确认安装方式,再设置路径变量,随后让配置立即生效,最后用检查命令判断当前 Go 环境是否已经可以正常开发。
先安装 Go:APT 和手动安装怎么选
设置路径之前,前提是系统里已经安装了 Go。Ubuntu 下常见做法有两种:
APT 安装
如果你更看重省事,直接用系统包管理器即可:

sudo apt update
sudo apt install golang-go
这种方式的优点是安装简单,缺点是版本通常跟随 Ubuntu 仓库,不一定是你想要的最新版本。
手动安装指定版本
如果你需要明确控制版本,可以手动下载官方压缩包。原文示例使用的是 Go 1.21:

wget https://golang.org/dl/go1.21.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.linux-amd64.tar.gz
解压完成后,Go 会位于 /usr/local/go。后面设置 GOROOT 时,这个路径会直接用到。
设置 GOROOT:让系统知道 Go 装在哪里
GOROOT 用来指向 Go 的安装根目录。虽然有些情况下系统能够自动识别,但手动确认一次更稳妥,尤其是在你用了手动安装的情况下。
先确认安装目录
- APT 安装的默认路径通常是
/usr/lib/go - 手动安装的默认路径通常是
/usr/local/go
如果你是 APT 安装,可以先检查一下目录是否存在:
ls /usr/lib/go
临时设置与永久设置
只想在当前终端里先试通,可以临时导出变量:
export GOROOT=/usr/local/go # 替换成实际路径
如果要长期使用,需要把这行写入配置文件,例如 ~/.bashrc、~/.profile,或者系统级脚本 /etc/profile.d/golang.sh。
GOPATH 和 PATH 该怎么配
很多新手会把 GOROOT 和 GOPATH 混在一起。前者是 Go 的安装位置,后者是你的工作空间;而 PATH 决定你能不能在任意目录直接运行 go 命令和已安装的 Go 工具。
设置 GOPATH
GOPATH 是 Go 的工作空间,常见目录结构包括 src、pkg 和 bin。默认值一般是 $HOME/go:
export GOPATH=$HOME/go
如果你没有特别的目录规划,直接使用这个默认位置通常就够了。
把 Go 命令目录加入 PATH
为了在任何位置都能直接执行 go 命令,以及运行通过 Go 安装到工作空间里的工具,还需要把下面两个目录加入 PATH:
$GOROOT/bin$GOPATH/bin
临时设置命令如下:
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
和前面的变量一样,想永久生效,也需要写入你的 shell 配置文件。
配置写完后,怎么立即生效并检查结果
把变量写进配置文件后,当前终端不会自动刷新,需要手动重新加载。

重新加载配置文件
source ~/.bashrc # 如果改的是~/.bashrc
# 或
source ~/.profile # 如果改的是~/.profile
# 或
source /etc/profile.d/golang.sh # 如果改的是系统级脚本
用命令验证环境是否正确
最直接的检查方式,就是看 Go 版本和两个关键变量是否输出了你预期的值:
go version # 应该输出Go版本,比如go1.21 linux/amd64
echo $GOROOT # 应该输出安装路径,比如/usr/local/go
echo $GOPATH # 应该输出工作空间路径,比如/home/yourname/go
如果 go version 能正常返回版本号,同时 GOROOT、GOPATH 也都指向正确目录,说明这套路径配置基本已经完成。
可选但实用:顺手配置 Go Modules 代理
从 Go 1.11 开始,官方推荐使用 Go Modules 管理依赖。在国内网络环境下,额外配置一个代理通常会省掉不少下载依赖时的等待和失败重试。
go env -w GOPROXY=https://goproxy.cn,direct
这条命令会直接写入 Go 环境配置中。原文也提到,你也可以把相关设置写进例如 ~/.bashrc 这样的配置文件里,避免后续重复处理。
一套可用的 Ubuntu Go 路径配置,至少要满足什么
如果你想快速判断自己有没有配完整,可以按这几个结果回看:
- Go 已通过 APT 或手动方式安装完成
GOROOT指向实际安装目录,如/usr/lib/go或/usr/local/goGOPATH指向工作空间,通常是$HOME/goPATH已包含$GOROOT/bin和$GOPATH/bingo version、echo $GOROOT、echo $GOPATH都能输出正确结果
满足这些条件后,Ubuntu 下的 Go 环境就已经具备基本可用性,后续写代码、编译程序和安装常见工具都会顺畅很多。













