You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何go mod占用非GOPATH所在磁盘(C盘)空间?(Windows+WSL环境)

解决WSL环境下Go依赖下载占用Windows C盘空间的问题

问题根源

WSL拥有独立的文件系统环境,默认情况下Go的模块缓存和依赖存储会放在WSL自身的根文件系统中(该路径映射到Windows的C盘%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited...\LocalState\rootfs目录),而非你在Windows系统中设置的D盘GOPATH。

具体解决步骤

  • 在WSL中配置正确的GOPATH
    打开WSL终端,编辑shell配置文件(比如~/.bashrc或~/.zshrc),添加以下内容:

    export GOPATH=/mnt/d/go
    export PATH=$PATH:$GOPATH/bin
    

    这里的/mnt/d/go对应Windows系统中的D:\go,根据你实际的GOPATH路径调整。保存后执行source ~/.bashrc(或对应配置文件)使设置生效。

  • 指定Go模块缓存目录
    Go 1.13及以上版本支持通过GOMODCACHE环境变量自定义模块缓存位置,继续在上述配置文件中添加:

    export GOMODCACHE=$GOPATH/pkg/mod
    

    同样执行source命令生效。

  • 迁移已存在的依赖缓存(可选)
    如果之前已经下载过依赖到C盘的WSL目录,先找到默认的缓存位置(通常是~/go/pkg/mod和~/.cache/go-build),将这两个目录的内容复制到/mnt/d/go/pkg/mod和/mnt/d/go/.cache/go-build,然后删除原目录释放C盘空间。

  • 验证配置
    在WSL终端执行go env,检查输出中的GOPATH和GOMODCACHE是否正确指向/mnt/d开头的路径。之后重新运行go mod tidy或单元测试,确认C盘不再被占用。

内容的提问来源于stack exchange,提问作者Radu Z.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:42:07