在 CentOS 上“配不好 Golang”是非常常见的问题,通常不是 Go 本身难,而是 环境、版本、权限、代理 这几块容易踩坑。下面把常见原因和正确做法一次性说清楚。
CentOS 7/8 默认仓库里的 golang 经常是 1.13、1.15 这种老版本,很多新项目根本跑不了。
go version
如果是 go1.1x,基本就是太老了。
✅ 解决:不要 yum 安装,手动装官方版
很多人直接乱下:
wget https://go.dev/dl/go1.22.linux-amd64.tar.gz
但服务器是 arm / aarch64,就会炸。
✅ 先确认架构:
uname -m
x86_64 → amd64aarch64 → arm64很多人解压完:
tar -C /usr/local -xzf go*.tar.gz
但 没加 PATH,终端还是找不到 go。
✅ 正确配置(CentOS 通用):
vim ~/.bashrc
加上:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
保存后:
source ~/.bashrc
再检查:
go version
CentOS 服务器访问 proxy.golang.org 基本超时。
✅ 必须设置代理:
go env -w GOPROXY=https://goproxy.cn,direct
或:
go env -w GOPROXY=https://proxy.golang.org,direct
(国内强烈推荐 goproxy.cn)
CentOS 默认 SELinux 开启,某些目录(如 /opt、/usr/local)执行 Go 程序会被拦。
✅ 临时验证:
setenforce 0
✅ 或把 Go 装在用户目录:
tar -C $HOME -xzf go*.tar.gz
# 1. 下载(以 amd64 为例)
cd /tmp
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
# 2. 清理旧版本
rm -rf /usr/local/go
# 3. 安装
tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
# 4. 配置环境
cat >> ~/.bashrc <<'EOF'
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export GOPROXY=https://goproxy.cn,direct
EOF
source ~/.bashrc
# 5. 验证
go version
go env GOPROXY
| 报错 | 原因 |
|---|---|
command not found: go |
PATH 没配 |
cannot find package |
GOPATH / mod 错 |
timeout |
GOPROXY 没设 |
permission denied |
SELinux / 权限 |
unsupported GOOS/GOARCH |
下载错架构 |
你可以直接告诉我:
cat /etc/redhat-release)go version 输出我可以 按你的机器一步步帮你配好。