温馨提示×

golang配置centos注意什么

小樊
41
2026-10-02 21:12:12
栏目: 编程语言

在 CentOS 上配置和使用 Golang(Go 语言) 时,有几个常见点和“坑”需要注意,下面按安装 → 环境 → 使用 → 常见问题来说明。


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

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

CentOS 自带 yum 的 golang 版本通常很旧,不建议用。

# 以 go1.21 为例
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz

二、环境变量配置(CentOS 常见坑)

1️⃣ 配置环境变量

编辑用户或全局配置:

vim ~/.bashrc
# 或
vim /etc/profile

加入:

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

生效:

source ~/.bashrc

2️⃣ 验证

go version

三、Go Modules(必须用)

CentOS 上 不要再用 GOPATH 模式:

go env -w GO111MODULE=on

代理设置(国内服务器必配):

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

四、CentOS 特有注意事项

1️⃣ glibc 版本问题

  • CentOS 7:glibc 较老(2.17)
  • 编译的程序在 更低版本系统 可能跑不了

✅ 建议:

  • 在 目标系统同版本 编译
  • 或使用 静态编译:
CGO_ENABLED=0 go build

2️⃣ CGO 问题(常见报错)

如果用了 sqlite、crypto 等:

# CentOS 需要安装
yum install -y gcc glibc-devel

关闭 CGO(不依赖系统库):

CGO_ENABLED=0 go build

3️⃣ 防火墙(运行服务时)

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

五、系统服务化(生产推荐)

systemd 示例

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

[Service]
User=app
WorkingDirectory=/opt/app
ExecStart=/opt/app/app
Restart=always

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

六、常见错误速查

问题 原因 解决
go: command not found PATH 没配 检查 /usr/local/go/bin
cannot find package GOPATH 模式 用 go mod
version too old yum 安装 用官方包
国内下载慢 proxy goproxy.cn
运行报错 GLIBC 跨版本 静态编译

七、推荐 CentOS 版本

  • ✅ CentOS 7(仍常用)
  • ✅ Rocky / AlmaLinux(CentOS 替代)
  • ❌ 避免 CentOS 8(已 EOL)

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

  • CentOS 版本(7 / 8 / Rocky)
  • Go 用途(Web / 微服务 / CLI)
  • 是否生产环境

我可以给你一份精确配置方案。

0 踩