在 CentOS 上配置 Golang(Go 语言环境)时,有几个常见但容易踩坑的点,下面按「安装 → 环境 → 权限 → 项目实践」给你一个实用清单。
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
❌ 不推荐:
yum install golang(版本太旧)编辑:
vim ~/.bashrc
# 或 ~/.zshrc
加入:
export PATH=$PATH:/usr/local/go/bin
生效:
source ~/.bashrc
验证:
go version
| 变量 | 作用 | 建议 |
|---|---|---|
| GOROOT | Go 安装目录 | /usr/local/go |
| GOPATH | Go 工作目录 | ~/go |
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
⚠️ Go 1.11+ 已支持 Go Modules,GOPATH 不再强制,但 GOPATH/bin 仍建议加入 PATH
go env -w GO111MODULE=on
查看:
go env
常用配置:
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GONOSUMDB=*
✅ 国内网络必备
adduser dev
su - dev
sudo chown -R $(whoami):$(whoami) /usr/local/go
如果 Go 写 Web 服务:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
✅ 如果报错:
version `GLIBC_2.28' not found
解决方案:
临时关闭测试:
setenforce 0
长期解决:
semanage port -a -t http_port_t -p tcp 8080
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app
nohup ./app > app.log 2>&1 &
| 问题 | 原因 |
|---|---|
go: command not found |
PATH 没配 |
cannot find package |
GOPROXY 没配 |
permission denied |
权限问题 |
too many open files |
ulimit 限制 |
查看 ulimit:
ulimit -n
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
如果你愿意,可以告诉我:
我可以给你一套完全贴合你环境的 Go 配置方案。