官方不推荐用 apt 安装 Go,因版本滞后且默认不支持 go install;推荐直接下载官方二进制包解压至 /usr/local/go 并配置 PATH,再设置 GOPATH=$HOME/go、GOBIN=$HOME/go/bin 且确保其在 PATH 前置。
怎么用 apt 安装 Go(Ubuntu/Debian)
官方不推荐用系统包管理器装 Go,因为 Ubuntu/Debian 仓库里的
包版本通常滞后 2–3 个大版本,且默认不带
支持(Go 1.16+ 才启用模块化安装),容易在跑
时失败。
如果你只是临时测试、写个脚本、或机器受限只能走 apt,可以装,但得知道代价:
执行
,装完
可能显示
(Ubuntu 22.04)或更老
默认设为
,但
默认开启,所以老式
工作流会失效
升级需等系统更新,不能单独升 Go
直接下载二进制包配环境变量(推荐)
这才是 Linux 上最可控、最常用的方式。Go 官方提供静态链接的
,解压即用,无需编译,也不污染系统路径。
实操步骤:
立即学习
“
go语言免费学习笔记(深入)
”;
去
https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd
找最新稳定版,比如
运行:
把
加进
:在
或
末尾加一行
重载配置:
(或
),再运行
验证
注意:
是约定俗成路径,别改成
或
—— 否则某些 IDE(如 VS Code 的 Go 插件)可能识别不到 SDK。
GOBIN 和 GOPATH 怎么设才不踩坑
Go 1.16+ 默认启用模块(
),
不再是代码存放地,而是工具和缓存目录;
控制
编译出的二进制放哪。
常见错误现象:
成功但命令找不到,或者
报
。
建议配置:
(保持默认即可,不用改)
(显式声明,避免依赖
的隐式逻辑)
确保
在
里,且位置比系统
靠前(否则可能调到旧版
等)
不要把项目代码放
—— 新项目直接
验证工作空间是否真就绪
光有
输出还不够。真实开发中容易卡在“环境看似正常,但
或
行为异常”的阶段。
快速验证项:
运行
,确认值合理(
应为
,
应为
)
新建测试目录,
,再
,然后
—— 能输出 ok 才算通路完整
试装一个命令行工具:
,完成后检查
是否指向
最容易被忽略的是 shell 配置未生效(尤其用 zsh 却改了 bashrc)、或终端没重启导致
没刷新 —— 这类问题占实际排查时间的 70% 以上。
golanggo installgo install github.com/xxx/yyy@latestsudo apt update && sudo apt install golanggo versiongo1.18.1GOPATH$HOME/goGO111MODULE=on$GOPATH/src.tar.gzgo1.22.5.linux-amd64.tar.gzsudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz/usr/local/go/bin$PATH~/.bashrc~/.zshrcexport PATH=$PATH:/usr/local/go/binsource ~/.bashrcsource ~/.zshrcgo version/usr/local/go/opt/go$HOME/goGO111MODULE=onGOPATHGOBINgo installgo installgo getcannot find module providing packageexport GOPATH=$HOME/goexport GOBIN=$HOME/go/bin$GOPATH/bin$GOBIN$PATH/usr/bingofmt$GOPATH/srcmkdir myproj && cd myproj && go mod init myprojgo versiongo rungo testgo env GOPATH GOBIN GOROOT GO111MODULEGOROOT/usr/local/goGO111MODULEongo mod init example.com/testecho 'package main; func main(){println("ok")}' > main.gogo run main.gogo install golang.org/x/tools/cmd/gopls@latestwhich gopls$GOBIN/gopls$PATH