在 CentOS 上配置 Go(Golang)环境,很多开发者会觉得“难”或“坑多”,通常不是 Go 本身难,而是CentOS 生态、版本管理和系统习惯带来的问题。下面从几个核心原因讲清楚。
yum install golang
go version
# go version go1.13 / go1.15(CentOS 7 甚至只有 1.11)
✅ 正确做法:不要用 yum 的 golang,去官网下二进制
unshare、namespace 行为不一致✅ CentOS 7 已偏老,Go 新特性更适合 CentOS 8 / Stream / Rocky
很多人卡在:
go: command not found
cannot find package
tar.gz,但没解压到 /usr/localPATH 只写在当前 shellGOPATH / GOMODCACHE 权限不对tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz
# ~/.bashrc 或 /etc/profile
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export GOMODCACHE=$GOPATH/pkg/mod
⚠️ 改完要:
source ~/.bashrc
go get: net/http: TLS handshake timeout
proxy.golang.org 被墙go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=off
getenforce
firewall-cmd --list-ports
✅ 推荐替代:
| 难点 | 本质 |
|---|---|
| yum 版本旧 | 系统哲学不同 |
| 环境配置烦 | Linux 基础不熟 |
| 模块下不动 | 网络问题 |
| 权限/SELinux | 安全机制复杂 |
| 系统太老 | CentOS 本身问题 |
Go 不难,难的是“用老系统 + 不规范方式 + 网络受限”组合出来的环境。
如果你愿意,我可以:
你现在是卡在哪一步?