官方二进制包安装最稳妥,下载解压至/usr/local/go,配置GOROOT、GOPATH和PATH,验证go version及模块初始化成功即可。

直接用官方二进制包安装最稳妥,不依赖系统包管理器,版本可控,卸载也干净。
下载并解压官方 Go 二进制包
Linux 服务器上装 Go,别碰 apt install golang 或 yum install golang —— 系统源里的版本通常太旧(比如 Ubuntu 22.04 默认是 1.18),且无法共存多版本。直接去 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下最新稳定版的 go(ARM 服务器选 arm64 后缀)。
执行以下命令(以 Go 1.22.5 为例):
wget https://www.php.cn/link/81836b7cd16991abb7febfd7832927fdgo1.22.5.linux-amd64.tar.gz sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
注意:/usr/local/go 是默认安装路径,后续所有配置都基于此;sudo rm -rf /usr/local/go 这步建议保留,避免残留旧版导致环境混乱。
立即学习“go语言免费学习笔记(深入)”;
配置 GOPATH 和 PATH
Go 1.16+ 已默认启用模块模式(GO111MODULE=on),GOPATH 不再强制用于存放项目代码,但 go install 编译的可执行文件仍默认放在 $GOPATH/bin,所以仍需设好。
编辑 ~/.bashrc 或 /etc/profile(全局生效用后者):
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
然后运行 source ~/.bashrc(或 source /etc/profile)。验证是否生效:
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
go version # 应输出 go1.22.5 go env GOPATH # 应输出 /home/username/go
常见错误:command not found: go 多因 PATH 漏加 $GOROOT/bin;go install 生成的命令找不到,通常是 $GOPATH/bin 没进 PATH。
验证安装并测试模块初始化
新建一个测试目录,确认 Go 能正常构建模块化项目:
mkdir ~/hello && cd ~/hello
go mod init hello
echo 'package main\nimport "fmt"\nfunc main() { fmt.Println("ok") }' > main.go
go run main.go如果输出 ok,说明安装和模块支持均正常。此时 go 命令已就绪,可配合 systemd 部署服务、用 go build 编译二进制、或直接 go run 调试。
注意:若项目含 cgo(如调用 C 库),需额外安装 gcc 和 libc-dev(Debian/Ubuntu)或 gcc-g++ glibc-devel(RHEL/CentOS);纯 Go 项目则无需任何额外依赖。
多版本共存与切换(可选但实用)
生产环境常需同时维护多个 Go 版本(如 v1.20 兼容老项目,v1.22 跑新服务)。不推荐改软链,建议用 goroot 切换:
- 把不同版本解压到不同路径,例如
/usr/local/go-1.20、/usr/local/go-1.22 - 通过临时修改
GOROOT和PATH切换:export GOROOT=/usr/local/go-1.20; export PATH=$GOROOT/bin:$PATH - 更省事可用
g工具(https://www.php.cn/link/0b7db80c5535b8265de65cc06cf731c8),但仅限非 root 用户场景
真正容易被忽略的是:go env -w 写入的配置会持久化到 $GOPATH 下的 env 文件,可能干扰跨版本行为;建议始终用显式 export 临时设置,避免隐式污染。









