必须手动安装最新版go并配置环境:先清除旧版本,再从官网下载解压至/usr/local/go,配置path和gopath,启用go111module=on及国内代理goproxy.cn,初始化后立即执行go mod tidy。

直接装最新版 Go,别用系统包管理器(yum 或 apt install golang),否则大概率卡在旧版本、编译失败或 go mod 行为异常。
怎么装对版本:手动解压 + 环境变量硬配
CentOS 7 / Ubuntu / WSL 都适用。关键不是“装”,是“路径干净 + 二进制可控”:
- 先清旧:执行
which go,如果输出路径(比如/usr/bin/go),就运行sudo rm -f $(which go);再删/usr/local/go和$GOPATH目录(如有) - 下新版:去
https://golang.google.cn/dl/找go1.25.4.linux-amd64.tar.gz(当前最新稳定版),用wget下载后sudo tar -C /usr/local -xzf go*.tar.gz - 配 PATH:往
~/.bashrc或~/.zshrc里追加两行:export PATH=$PATH:/usr/local/go/binexport GOPATH=$HOME/go
然后source ~/.bashrc - 验证:
go version必须输出类似go version go1.25.4 linux/amd64;go env GOPATH应返回你设的路径
为什么必须开 GO111MODULE=on 和配代理
没这俩,go mod init 可能静默失败,go get 卡住或拉不到私有模块——尤其在国内。
使用 uber-go/dig 在 Golang 中实现依赖注入——基于反射容器,提供 Provide/Invoke、dig.In/dig.Out 参数与结果对象,支持命名依赖等
- 执行:
echo "export GO111MODULE=on" >> ~/.bashrcecho "export GOPROXY=https://goproxy.cn,direct" >> ~/.bashrcsource ~/.bashrc -
GOPROXY别写成https://proxy.golang.org(国内基本不可用),goproxy.cn是国内镜像,支持directfallback - 检查是否生效:
go env GO111MODULE输出on,go env GOPROXY输出你刚设的地址
go mod init 后立即要做的事
不是建完项目就完事了。新模块默认不兼容旧依赖,且 IDE(如 VS Code)可能报红。
- 初始化后立刻跑:
go mod tidy—— 它会下载依赖、修正版本、生成go.sum,缺这步,后续go run很可能报import not found - 如果项目要引用本地其他模块(比如
../utils),别用go get,改用go mod edit -replace github.com/xxx/utils=../utils - VS Code 装了 Go 扩展后,右下角状态栏点 “Go: Install Tools”,确保
gopls、dlv等全装上,否则跳转/补全失效
常见卡点:go run main.go 报错但没提示
表面看是代码问题,实际八成是环境链路断了。
-
command not found: go→ PATH 没生效,检查source是否漏了,或 shell 类型不对(zsh用户该改~/.zshrc) -
cannot find package "github.com/hajimehoshi/ebiten/v2"→go mod tidy没跑,或GOPROXY不可用,试curl -I https://goproxy.cn -
undefined: fmt.Println→ 文件开头少了package main,或import "fmt"拼错成improt这类低级 typo - IDE 里绿色三角点不动 → 确认文件名是
main.go,且所在目录是模块根目录(有go.mod文件)
真正省时间的不是“一键脚本”,而是每次新建项目都重走一遍 clean install + proxy + tidy 三步。路径、代理、模块初始化,三个点任一出错,后面所有操作都在堆错误。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










