Golang的模块下载目录用于存储通过go get、go mod tidy等命令拉取的第三方依赖包,默认路径由GOMODCACHE环境变量控制,修改该变量即可自定义模块存储位置。

GOMODCACHE的作用与默认值
GOMODCACHE是Golang内置的环境变量,专门用来指定模块缓存的根目录,所有下载的模块版本都会按照固定结构存放在该目录下。我们可以通过go env命令查看当前的默认值:
# 查看所有Go环境变量,找到GOMODCACHE项 go env
不同系统的默认GOMODCACHE路径如下:
- Windows系统:%GOPATH%pkgmod,如果未设置GOPATH则默认是C:Users用户名gopkgmod
- Linux/macOS系统:$GOPATH/pkg/mod,未设置GOPATH时默认是$HOME/go/pkg/mod
临时修改GOMODCACHE(仅当前终端生效)
如果只是临时需要切换模块下载目录,可以直接在终端执行命令设置环境变量,关闭终端后配置会自动失效。
Windows系统(PowerShell)
# 设置自定义模块目录,路径替换为自己的目标路径 $env:GOMODCACHE="D:go_mod_cache" # 验证配置是否生效 go env GOMODCACHE
Linux/macOS系统(Bash/Zsh)
# 设置自定义模块目录,路径替换为自己的目标路径 export GOMODCACHE="/data/go_mod_cache" # 验证配置是否生效 go env GOMODCACHE
永久修改GOMODCACHE(全局生效)
如果需要配置长期生效,需要将环境变量写入系统配置文件,不同系统的操作方式有所区别。
Windows系统
步骤1:右键点击此电脑,选择属性,进入高级系统设置,点击环境变量按钮。
步骤2:在用户变量或者系统变量区域点击新建,变量名填写GOMODCACHE,变量值填写自定义的目录路径,比如D:go_mod_cache。
步骤3:点击确定保存所有设置,重启终端后执行go env GOMODCACHE验证配置是否生效。
Linux系统
如果使用Bash shell,编辑~/.bashrc文件,在文件末尾添加如下内容:
# 自定义Golang模块缓存目录 export GOMODCACHE="/data/go_mod_cache"
保存后执行source ~/.bashrc让配置生效,之后执行go env GOMODCACHE验证。
如果使用Zsh shell,编辑~/.zshrc文件,添加相同的export命令后执行source ~/.zshrc即可。
macOS系统
macOS的终端默认使用Zsh,编辑~/.zshrc文件,添加如下内容:
# 自定义Golang模块缓存目录 export GOMODCACHE="/Users/用户名/custom_go_mod_cache"
保存后执行source ~/.zshrc让配置生效,验证方式和Linux一致。
配置验证与清理旧缓存
修改完成后,可以执行go mod download命令拉取一个依赖,检查目标目录下是否生成了对应的模块文件,确认配置生效。
如果之前已经有默认目录的缓存,想要迁移到新目录,可以直接复制旧目录下的所有文件到新路径,之后删除旧目录即可。也可以执行如下命令清理旧缓存:
# 清理所有模块缓存 go clean -modcache
清理后后续拉取的依赖会自动存储到新的GOMODCACHE目录中。
常见问题说明
- 修改后执行go env GOMODCACHE还是显示旧路径:检查环境变量是否写入正确,终端是否重启,Windows系统需要重启终端后配置才会生效。
- 自定义目录没有写入权限:确保目标目录对当前用户有读写权限,Linux/macOS系统可以通过chmod命令修改目录权限。
- 多版本Golang共用同一个GOMODCACHE:Golang的模块缓存是版本兼容的,不同版本的Go可以共用同一个模块缓存目录,不会产生冲突。
GolangGOMODCACHE模块下载目录go_env修改时间:2026-07-12 03:24:22