windows/macos安装官方.msi或.pkg包后可直接go run,无需配置环境变量;linux需手动执行export path=$path:/usr/local/go/bin并source生效,且必须先go mod init初始化模块才能正常运行项目。

直接装完就能 go run 跑起来,不用改任何环境变量 —— 这在 Windows/macOS 上基本成立;Linux 需要手动加 PATH,但也就一行命令。
Windows 和 macOS 安装后通常无需额外配置
官方安装包(.msi 或 .pkg)会自动写入 GOROOT、把 go 命令加进系统 PATH,并设好默认 GOPATH。你只要:
- 从 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载对应系统的安装包(比如
go1.22.5.windows-amd64.msi) - 双击运行,一路点“Next”用默认路径(
C:\Go或/usr/local/go) - 打开新终端(CMD/PowerShell 或 Terminal),执行
go version
看到类似 go version go1.22.5 windows/amd64 就算成功。不用查 %GOROOT% 或 $GOPATH,除非你要放第三方二进制到 GOBIN。
Linux 必须手动加 PATH,否则 go 命令找不到
Linux 下下载的是 .tar.gz,解压后不会自动注册命令。常见错误是解压完就跑 go version,报 command not found。
正确做法(以 tar.gz 解压到 /usr/local 为例):
- 执行
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz - 编辑
~/.zshrc(或~/.bashrc):添加export PATH=$PATH:/usr/local/go/bin - 执行
source ~/.zshrc(或source ~/.bashrc)
注意:别漏掉 /bin 后缀 —— 写成 /usr/local/go 是错的,go 可执行文件实际在 go/bin/go。
go mod init 才是现代 Go 项目真正起点
装完 go 命令不等于能写项目。很多新手卡在“写了 main.go 却 go run 报错”,根本原因是没初始化模块。
新建项目目录后,必须先运行:
go mod init example.com/hello
这会生成 go.mod 文件,后续 go run main.go 才能正常解析导入和依赖。没有它,哪怕代码语法完全正确,go 也会拒绝执行(尤其在 Go 1.16+ 默认启用 module 模式后)。
模块名可以是任意合法字符串(不一定要真实域名),但不能是空或纯数字。
验证环境是否真可用:跑一个最小 HTTP 服务
光看 go version 成功还不够。真正容易被忽略的是网络库或标准库是否完整 —— 某些精简版 Linux 容器镜像缺 libc 或 DNS 支持,会导致 net/http 初始化失败。
建一个 main.go:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "OK")
})
fmt.Println("Listening on :8080")
http.ListenAndServe(":8080", nil)
}
然后执行:
go mod init testgo run main.go- 另开终端
curl http://localhost:8080,返回OK才算闭环
如果卡在 Listening on :8080 但 curl 超时,大概率是防火墙、端口占用,或容器里没暴露端口 —— 这些问题比环境搭建本身更常绊住人。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











