~/.cargo/registry 太大能删吗?Rust Cargo 缓存清理
可以放心删会自动重新生成;Thermo 直接删除。
先退出: cargo
位置
~/.cargo/registry/cache~/.cargo/registry/src~/.cargo/git/checkouts
这是什么
Cargo 从 crates.io 下载的 .crate 压缩包存在 registry/cache,解压后的源码放在 registry/src,用 Git 地址引用的依赖则检出到 git/checkouts。所有 Rust 项目共享这些目录。
为什么会这么大
每个依赖的每个版本都会同时保留压缩包和解压后的源码,Git 依赖还会按提交各检出一份。Cargo 默认不会主动删除旧版本,项目一多就越积越大。
能删吗?删了会怎样
安全。删除后不影响已经编译好的程序,下次构建时 Cargo 会重新下载并解压所需的依赖。清理前先结束正在运行的 cargo 命令,避免构建中途找不到文件。离线构建前不要清理。
小提示
Rust 项目里的 target 目录往往比这些缓存大得多,它不在此项中,可以在项目里用 cargo 自带的 clean 子命令清理。
先看看占了多少
du -sh "$HOME/.cargo/registry/cache" "$HOME/.cargo/registry/src" "$HOME/.cargo/git/checkouts" 2>/dev/null手动删除
在「终端」里执行。删除不可撤销,执行前请确认路径。
rm -rf "$HOME/.cargo/registry/cache"/*
rm -rf "$HOME/.cargo/registry/src"/*
rm -rf "$HOME/.cargo/git/checkouts"/*