结论:go 环境 5 分钟可跑通 go run,关键在绕过 windows 图形化安装器和 gui 环境变量编辑器,改用 zip 包手动配置 goroot、gopath 和 path,并必须设置 goproxy=https://goproxy.cn,direct。

直接说结论:不用图形界面、不碰系统设置窗口、全程终端操作,Go 环境 5 分钟可跑通 go run,关键在绕过 Windows 图形化安装器和 GUI 环境变量编辑器。
Windows 下跳过 .msi 安装器,用 zip 包 + 手动 PATH
Windows 默认 .msi 安装器会帮你配 GOROOT 和 Path,但重度命令行用户往往反感“自动配置”——它可能混入系统级变量、干扰已有工具链、重启终端才生效。更可控的做法是:
- 去 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载
go1.25.0.windows-amd64.zip(注意选 zip,不是 msi) - 解压到固定路径,例如
D:\go(无空格、无中文、非系统盘) - 在 PowerShell 中一次性写死环境变量(不依赖系统属性面板):
echo 'export GOROOT="D:/go"' | Out-File -Encoding utf8 -Append $PROFILE echo 'export GOPATH="$HOME/go"' | Out-File -Encoding utf8 -Append $PROFILE echo 'export PATH="$GOROOT/bin:$GOPATH/bin:$PATH"' | Out-File -Encoding utf8 -Append $PROFILE . $PROFILE
- 验证:
go version和go env GOROOT应输出对应路径
Linux/macOS 下避免 brew/apt 装旧版,手动部署最新二进制
包管理器(如 apt install golang 或 brew install go)常滞后 1–2 个次版本,且可能把 go 装进 /usr/bin,权限受限、升级困难。纯终端流应掌控安装位置:
- 下载并解压到
/opt/go(需要sudo):sudo rm -rf /opt/go sudo tar -C /opt -xzf go1.25.0.linux-amd64.tar.gz
- 写入 shell 配置(以 zsh 为例):
echo 'export GOROOT="/opt/go"' >> ~/.zshrc echo 'export GOPATH="$HOME/go"' >> ~/.zshrc echo 'export PATH="$GOROOT/bin:$GOPATH/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
- 不推荐用
~/.bash_profile或/etc/profile:前者只在登录 shell 生效,后者影响所有用户,不符合个人终端流原则
必须设 GOPROXY,否则 go mod download 卡死
国内直连 proxy.golang.org 基本不可用,而 go mod 默认不开代理,首次 go run 含第三方包时就会卡在 fetch 阶段,现象是光标静止、无报错、无超时提示——这是最常被忽略的“假成功”陷阱。
- 执行这条命令(立即生效,无需重启终端):
go env -w GOPROXY=https://goproxy.cn,direct
- 验证是否写入:
go env GOPROXY应输出https://goproxy.cn,direct - 如果公司内网禁外网,可 fallback 到私有代理或
direct,但不要留空;direct在末尾表示仅对国内模块走直连,其余仍走代理
初始化项目时别碰 GOPATH/src,用 go mod 自由建目录
老教程强调“代码必须放 $GOPATH/src/github.com/xxx”,那是 Go Modules 出现前的规则。2026 年还在按这个结构组织项目,等于主动放弃模块隔离、版本锁定和 vendor 支持。
- 随便找个目录,比如
~/dev/hello,执行:mkdir -p ~/dev/hello && cd ~/dev/hello go mod init hello
- 写
main.go,内容为:package main import "fmt" func main() { fmt.Println("ok") } - 运行:
go run main.go—— 成功即代表整个链路(编译器、模块解析、代理)全通 - 后续加依赖(如
github.com/spf13/cobra),直接go get,不用管GOPATH路径
真正容易被忽略的点是:PATH 写错斜杠(Windows PowerShell 里用 / 没问题,但 \ 要双写)、go env -w 写的是用户级变量却误查系统级、以及 GOPROXY 设了但没加 ,direct 导致私有模块拉不到——这些都不是“配置失败”,而是“看似成功,实则半残”。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











