确认“真 go”需三件事全通:go mod init example.com/test 生成 go.mod、go get github.com/sirupsen/logrus 秒级完成、go run main.go 输出 hello, go!;goroot 必须显式设置且 $goroot/bin 在 path 最前,goproxy 需设为 https://goproxy.cn,direct。

别用 apt install golang 或 yum install golang —— 系统仓库里的 Go 版本普遍卡在 go1.18 甚至更老,不支持泛型约束、embed、模块校验等现代特性,go mod 默认不生效,项目一拉依赖就卡死或报错。
怎么确认你装的是不是“真 Go”
只跑 go version 成功不算装好。真正可用的标志是三件事全通:
-
go mod init example.com/test能立刻生成go.mod -
go get github.com/sirupsen/logrus几秒内完成(没超时) -
go run main.go输出Hello, Go!(文件在任意空目录,不放$GOPATH/src)
任一失败,基本就是环境变量、代理或 PATH 顺序错了。
PATH 和 GOROOT 必须成对且顺序严格
手动解压后,/usr/local/go 是真实路径。必须显式设置 GOROOT,且 $GOROOT/bin 必须出现在 PATH 最前面,否则系统自带的旧版 /usr/bin/go 会被优先调用。
写入 ~/.bashrc 或 ~/.zshrc(别写错 shell):
export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH
注意:$GOROOT/bin 在前,不是在后。改完立刻 source ~/.zshrc,再检查:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
-
echo $PATH应看到/usr/local/go/bin开头 -
which go必须返回/usr/local/go/bin/go -
go env GOROOT应输出/usr/local/go,不能是软链接或相对路径
不配 GOPROXY 就等于没装成功
国内用户没设代理,go mod download 或 go get 会卡在 dial tcp: i/o timeout,错误里根本不提代理——这是最常被忽略的致命环节。
执行:
go env -w GOPROXY=https://goproxy.cn,direct
direct 表示对私有仓库(如公司内网 Git)跳过代理,必须保留。验证方式:新建空目录,跑 go mod init test && go get github.com/sirupsen/logrus,秒级完成才算通。
systemd/crontab/CI 里 go 找不到?因为它们不读 ~/.zshrc
交互式终端能用,不代表后台服务能用。systemd、crontab、GitHub Actions 等默认只读 /etc/profile.d/ 下的脚本,不加载用户 shell 配置。
解决办法:新建 /etc/profile.d/go.sh,内容为:
export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH
确保 GOROOT 是绝对路径、无软链接,且该文件权限为 644。否则 CI 流水线或定时任务会直接报 command not found: go。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










