GolangNote

Golang笔记

Go 清理模块缓存

Permalink

随着模块不断升级,时间久了,pkg 目录越来越大,导致专门为 Linux 下编译开的虚拟机空间爆满。

Bash:
1
2
3
4
5
6
7
8
9
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            472M     0  472M   0% /dev
tmpfs            99M  624K   98M   1% /run
/dev/sda1       9.8G  9.0G  277M  98% /
tmpfs           493M     0  493M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           493M     0  493M   0% /sys/fs/cgroup
tmpfs            99M     0   99M   0% /run/user/1000

查看文件夹占用空间

Bash:
1
2
3
4
$ du -sh *
28M	bin
4.0G	pkg
1.2G	src

文件夹说明

  • src: 源码文件
  • bin: 编译生成的而可执行文件
  • pkg: 平台相关目录(目标操作系统目录),编译后生成的文件

用命令 go clean -modcache 清除模块缓存

Bash:
1
2
3
4
5
6
7
8
9
10
$ go clean -modcache
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            472M     0  472M   0% /dev
tmpfs            99M  628K   98M   1% /run
/dev/sda1       9.8G  4.2G  5.1G  46% /
tmpfs           493M     0  493M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           493M     0  493M   0% /sys/fs/cgroup
tmpfs            99M     0   99M   0% /run/user/1000

哈哈,剩余空间又变大了,接下来到项目目录下编译,又会下载依赖,但不会占用那么大空间。

Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ go build .
go: downloading github.com/valyala/fasthttp v1.37.0
go: downloading golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
go: downloading github.com/andybalholm/brotli v1.0.4
go: downloading github.com/klauspost/compress v1.15.6
go: downloading github.com/valyala/bytebufferpool v1.0.0
......

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            472M     0  472M   0% /dev
tmpfs            99M  628K   98M   1% /run
/dev/sda1       9.8G  4.8G  4.5G  52% /
tmpfs           493M     0  493M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           493M     0  493M   0% /sys/fs/cgroup
tmpfs            99M     0   99M   0% /run/user/1000

Go build cache

清除 Go build 缓存

1
2
3
go env GOCACHE
du -hs $(go env GOCACHE)
go clean --cache

本文网址: https://golangnote.com/topic/310.html 转摘请注明来源

Related articles

Go Modules 使用备忘

简单说 Go Modules 就是包管理,从 go1.11 开始支持,可以不需要gopath存在,环境变量`GO111MODULE`,默认为 `auto` 项目存在 `go.mod` 则使用 go module ,否则使用GOPATH 和 vendor 机制。...

vuego: 用GO编写 vue.js 前端

vuego 是一个基于WASM 对Vue.js 的封装,使用Web Assembly 编译。可以让开发者用go 来写Vue.js 前端脚本。...

Write a Comment to "Go 清理模块缓存"

Submit Comment Login
Based on Golang + fastHTTP + sdb | go1.20 Processed in 0ms