在 CentOS 上“配不好 Golang”是很常见的问题,通常不是 Golang 本身难,而是 CentOS 的环境和习惯容易踩坑。下面把常见原因和正确做法说清楚。
CentOS 7/8 默认仓库里的 Go 版本非常旧(常见 1.10、1.13),很多新项目直接编译不过。
go version
# 如果是 1.10 左右,基本可以判定是 yum 装的
✅ 建议:不要用 yum 装 Go
很多人混乱点在于:
老教程还会让你设:
export GOPATH=/root/go
但在 Go 1.11+(尤其 1.16+),默认已经是 module 模式,GOPATH 不那么重要了。
常见错误:
~/.bashrc 但用的是 zshCentOS 在国内常遇到:
go get 超时proxy.golang.org 访问不了/usr/local/go 权限不对/root 下导致 module 失败yum remove golang -y
which go
cd /usr/local
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
编辑:
vi ~/.bashrc
加入:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPROXY=https://goproxy.cn,direct
生效:
source ~/.bashrc
验证:
go version
不要在 GOPATH 里写项目了!
mkdir ~/myproject
cd ~/myproject
go mod init myproject
go run main.go
| 问题 | 解决 |
|---|---|
| go: command not found | PATH 没加 |
| cannot find package | 用 module,不要 GOPATH |
| go get 超时 | 设置 GOPROXY |
| 编译慢 | 关 SELinux 或加 proxy |
| root 下不行 | 用普通用户 |
CentOS 配不好 Golang,90% 是因为:旧版本 + 错误环境变量 + 网络问题
如果你愿意,可以告诉我:
我可以直接帮你“按你机器情况”配好。