在 CentOS 上排查 Golang 配置错误,通常可以从环境、版本、网络、权限、构建过程几个层面入手。下面给你一套系统性排查思路,适合绝大多数情况。
go version
go version go1.xx.x linux/amd64command not found:说明没装或 PATH 没配go env
重点关注:
GOROOTGOPATHGOBINPATH推荐配置(CentOS 常见):
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
使配置生效:
source ~/.bashrc
# 或
source /etc/profile
原因
排查
which go
ls /usr/local/go/bin
解决
export PATH=$PATH:/usr/local/go/bin
cannot find package "xxx"
原因
排查
go env GOPATH
ls $GOPATH/src
解决
go get xxx
CentOS 上非常常见,尤其是内网服务器。
错误示例
dial tcp: lookup proxy.golang.org: no such host
解决(推荐)
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=off
查看:
go env GOPROXY
go: go.mod file not found
解决
go mod init projectname
go mod tidy
错误示例
permission denied
排查
whoami
ls -l $GOPATH
建议
getenforce
如果是 Enforcing,可临时测试:
setenforce 0
(生产环境需谨慎)
go version
go env
echo $PATH
go mod init test
go get github.com/gin-gonic/gin
如果以上都能跑通,说明配置基本 OK。
你可以直接贴出:
go env 输出cat /etc/centos-release)我可以按你的实际情况一步步帮你定位。