在 CentOS 上“配不好 Golang 环境”是很常见的问题,通常不是 Golang 本身难,而是 CentOS 的系统特性 + 常见配置误区 叠加导致的。下面我帮你系统梳理一下常见原因 + 正确做法。
yum install golang(版本太老)CentOS 7/8 自带仓库里的 Golang 非常旧:
yum install golang
go version
# go1.13 / go1.15(已经不够用了)
✅ 正确做法:去官网下载二进制包
cd /usr/local
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
很多人这样写:
export PATH=$PATH:/usr/local/go/bin
然后:
✅ 正确做法(永久生效)
vim ~/.bashrc
加入:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存后:
source ~/.bashrc
⚠️ 如果是 root 用户,要改 /etc/profile 或 ~/.bash_profile
CentOS 7 某些最小化安装:
/bin/sh.bashrc 不自动加载✅ 解决:
echo $SHELL
不是 /bin/bash 的话:
chsh -s /bin/bash
不配代理,go get 直接失败:
go: cannot find module
✅ 必须配:
go env -w GOPROXY=https://goproxy.cn,direct
或:
export GOPROXY=https://proxy.golang.org,direct
如果你在跑 Go Web 服务:
curl localhost:8080 可以
外网访问不了
✅ 检查:
getenforce
临时关闭测试:
setenforce 0
# 1. 安装
cd /usr/local
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
tar -xzf go1.22.5.linux-amd64.tar.gz
# 2. 环境变量
cat >> ~/.bashrc <<'EOF'
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPROXY=https://goproxy.cn,direct
EOF
source ~/.bashrc
# 3. 验证
go version
go env GOPROXY
如果你还是配不好,直接贴:
cat /etc/redhat-release)go version 输出go env 输出我可以 一步一步帮你定位是哪一步炸了。