misonoteApp Center

Go 编译缓存 go-build 太大能删吗?Mac 清理方法

可以放心删会自动重新生成;Thermo 直接删除。

先退出: go

位置

  • ~/Library/Caches/go-build

这是什么

go-build 是 Go 工具链的构建缓存(GOCACHE),go build 和 go test 会把编译好的包和测试结果存进来,下次遇到相同输入时直接复用,大幅加快构建。

为什么会这么大

不同的代码改动、构建参数、目标平台和 Go 版本都会产生新的缓存条目。Go 会自动淘汰长期未用的条目,但在活跃开发、频繁交叉编译时仍可能涨到很大。

能删吗?删了会怎样

安全。删除后下一次构建和测试会从头编译,速度变慢,之后就恢复正常。不会影响源码和已安装的二进制。清理前请结束正在运行的 go 命令。

小提示

下载的模块源码在另一个地方(GOPATH 下的 pkg/mod),不属于这一项;那里的文件是只读的,要用 go 的 modcache 清理参数删除,直接 rm 会遇到权限问题。

先看看占了多少

du -sh "$HOME/Library/Caches/go-build" 2>/dev/null

用它自带的命令清理

go clean -cache

手动删除

在「终端」里执行。删除不可撤销,执行前请确认路径。

rm -rf "$HOME/Library/Caches/go-build"/*