温馨提示×

Golang配置CentOS要注意啥

小樊
44
2026-07-08 04:29:10
栏目: 编程语言

CentOS 上配置 Golang(Go 语言环境) 时,有几个常见坑点和注意事项,下面按推荐做法 + 易踩坑点给你讲清楚。


一、推荐安装方式(CentOS 7 / 8 / Stream)

✅ 方式一:官方二进制包(最推荐 ✅)

稳定、干净、可控

1️⃣ 卸载系统自带旧版本(如果有)

yum remove golang -y

2️⃣ 下载 Go(以 1.22 为例)

cd /usr/local
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz

3️⃣ 解压

tar -xzf go1.22.4.linux-amd64.tar.gz

解压后目录:/usr/local/go


✅ 配置环境变量(重点)

编辑:

vim ~/.bashrc

写入:

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

生效:

source ~/.bashrc

验证:

go version

✅ 正确输出类似:

go version go1.22.4 linux/amd64

二、CentOS 上特别要注意的点 ⚠️

1️⃣ 不要用 yum 默认安装的 Go

yum install golang

❌ 问题:

  • 版本非常旧(CentOS 7 可能是 1.13)
  • 容易和 go module 冲突

建议:一律用官方二进制包


2️⃣ GOPATH 不要乱设

常见错误:

GOPATH=/usr/local/go   ❌

✅ 正确:

GOPATH=$HOME/go

原因:

  • GOROOTGOPATH
  • GOPATH 是工作目录,不是 Go 安装目录

3️⃣ Go Modules 必须开启(Go 1.16+)

go env -w GO111MODULE=on

否则老项目可能报错:

cannot find package

4️⃣ GOPROXY 国内必须配置

否则 go get 非常慢甚至失败:

go env -w GOPROXY=https://goproxy.cn,direct

或:

go env -w GOPROXY=https://proxy.golang.org,direct

验证:

go env | grep GOPROXY

5️⃣ 防火墙 & 端口(写服务时)

CentOS 默认开启 firewalld

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

否则:

  • 本地能访问
  • 外部访问不了

6️⃣ SELinux 可能拦住端口

如果服务起不来:

getenforce

如果是 Enforcing

setenforce 0   # 临时关闭

或配置 SELinux 规则(推荐生产环境)


三、CentOS 7 vs 8 vs Stream 差异

系统 注意点
CentOS 7 glibc 较老,Go 1.20+ 没问题
CentOS 8 yum 已停止维护,建议用 dnf
Stream 接近 RHEL,稳定

四、常见错误速查表

错误 原因 解决
go: command not found PATH 没配 检查 .bashrc
cannot find package GOPATH / GO111MODULE 开启 module
permission denied 权限问题 不要装在 /root
network timeout 没配代理 配 GOPROXY

五、推荐生产环境配置 ✅

/usr/local/go        # Go 安装
$HOME/go             # 项目 & 缓存
GOPROXY=goproxy.cn
GO111MODULE=on

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 是本地开发还是服务器
  • ✅ 是否用 Docker / systemd

我可以给你 一套完全贴合你环境的 Go 配置方案

0