温馨提示×

centos配置golang要注意什么

小樊
39
2026-09-05 22:58:25
栏目: 编程语言

在 CentOS 上配置 Golang(Go 语言环境)时,有几个常见坑点和最佳实践需要注意,下面按「安装 → 配置 → 使用 → 常见问题」给你梳理一下。


一、安装方式选择(很重要)

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

不要用 yum install golang(版本往往很旧)

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

/usr/local/go 是官方推荐路径


❌ 不推荐

  • yum install golang(CentOS 7 可能是 Go 1.13)
  • 直接用 root 在 $HOME 里乱放

二、环境变量配置(核心)

编辑用户环境变量

vim ~/.bashrc

加入:

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

生效:

source ~/.bashrc

验证

go version
go env

三、GOPATH 与模块(Go Modules)

✅ 现代做法(Go 1.11+)

不需要手动建 GOPATH 项目

go mod init project
go mod tidy

注意事项

  • GO111MODULE=on(Go 1.16+ 默认就是)
  • CentOS 老系统可能默认 off,需手动开:
export GO111MODULE=on

四、代理与网络问题(国内特别注意)

设置 GOPROXY

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

或:

export GOPROXY=https://goproxy.cn

否则 go get 会卡死。


五、防火墙 & 端口(Web 服务)

如果你是跑 HTTP 服务:

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

六、SELinux 问题(CentOS 特有)

如果程序无法绑定端口或写文件:

getenforce

临时关闭(不推荐长期):

setenforce 0

正确做法:

  • 改策略
  • 或放在 /var/www/opt 等允许路径

七、systemd 启动 Go 程序(生产推荐)

示例 go.service

[Unit]
Description=Go App
After=network.target

[Service]
ExecStart=/root/go/bin/app
WorkingDirectory=/root/go/src/app
User=root
Restart=always

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start go

八、常见坑总结 ⚠️

问题 原因
go: command not found PATH 没配
go get 超时 没设 GOPROXY
编译慢 没开 module cache
端口无法访问 防火墙 / SELinux
yum 版本太旧 用了系统源

九、推荐最终环境(示例)

go version go1.22.5 linux/amd64
GOPROXY=https://goproxy.cn
GO111MODULE=on

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

  • CentOS 版本(7 / 8 / Stream)
  • 用途(开发 / 生产 / Docker)
  • 是否内网环境

我可以给你一套完全贴合你场景的配置方案

0