在 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
编辑用户或全局配置:
vim ~/.bashrc
# 或
vim /etc/profile
加入:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
生效:
source ~/.bashrc
go version
CentOS 上 不要再用 GOPATH 模式:
go env -w GO111MODULE=on
代理设置(国内服务器必配):
go env -w GOPROXY=https://goproxy.cn,direct
✅ 建议:
CGO_ENABLED=0 go build
如果用了 sqlite、crypto 等:
# CentOS 需要安装
yum install -y gcc glibc-devel
关闭 CGO(不依赖系统库):
CGO_ENABLED=0 go build
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
[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 | 跨版本 | 静态编译 |
如果你愿意,可以告诉我:
我可以给你一份精确配置方案。