在 CentOS 多用户环境下配置 Golang,通常有两种思路:
下面分别说明,并给出最常见、最稳妥的做法。
cd /usr/local
sudo wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
编辑系统环境变量文件:
sudo vi /etc/profile.d/go.sh
写入:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/opt/gopath
export PATH=$PATH:$GOPATH/bin
GOPATH建议放在公共目录,或让用户各自设置
source /etc/profile
go version
✅ 所有用户登录后均可直接使用 go
适合:
cd ~
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
tar -C ~/ -xzf go1.22.4.linux-amd64.tar.gz
vi ~/.bashrc
添加:
export PATH=$PATH:$HOME/go/bin
export GOPATH=$HOME/gopath
source ~/.bashrc
使用 Go Modules,不依赖 GOPATH
go env -w GO111MODULE=on
每个用户项目:
go mod init project
| 项目 | 建议 |
|---|---|
| Go 安装目录 | /usr/local/go(root 所有) |
| GOPATH | 用户私有(~/gopath) |
| 全局 bin | 避免多用户写入冲突 |
| 防火墙 / SELinux | 开发环境可临时关闭 |
sudo visudo
确保:
Defaults secure_path 包含 /usr/local/go/bin
使用 g 或 goenv:
go install github.com/voidint/g@latest
✅ 生产 / 服务器:系统级安装
✅ 开发 / 教学:用户级安装
✅ 现代 Go:用 Modules,少碰 GOPATH
如果你能说明:
我可以给你更精确的一套配置方案。