学无止境

少年辛苦终身事,莫向光阴惰寸功。——唐·杜荀鹤《题弟侄书堂》


Rust 与 Cargo 清理指南:删除旧工具链和构建缓存

Rust 项目编译一段时间后,磁盘空间往往会被以下三类文件占满:

  1. 项目中的 target/ 构建产物;
  2. Cargo 保存在 $CARGO_HOME(通常是 ~/.cargo/)中的依赖缓存;
  3. rustup 安装的旧工具链、交叉编译目标和组件。

它们的用途和清理方式并不相同。本文将分别介绍如何安全清理这些文件,并尽量避免不必要的重新下载和完整编译。

建议先检查占用,再使用工具提供的 --dry-run 预览结果。不要直接手动删除整个 ~/.cargo/~/.rustup/ 目录。

一、先找出空间占用来源

在 Linux 和 macOS 中,可以先查看 Rust 相关目录的大小:

du -sh target 2>/dev/null
du -sh "${CARGO_HOME:-$HOME/.cargo}" 2>/dev/null
du -sh "${RUSTUP_HOME:-$HOME/.rustup}" 2>/dev/null

常见目录的作用如下:

位置 内容 清理后的影响
项目/target/ 当前项目的编译产物 下次构建需要重新编译
$CARGO_HOME/registry/ crates.io 索引、.crate 包和解压后的源码 后续可能重新下载或解压依赖
$CARGO_HOME/git/ Git 依赖的仓库与检出内容 后续需要重新获取 Git 依赖
$CARGO_HOME/bin/ cargo install 安装的程序 删除后相应命令将无法使用
$RUSTUP_HOME/toolchains/ Rust 工具链 删除后无法再使用对应版本

二、清理项目的 target/ 构建产物

1. 使用 Cargo 原生命令

不带参数的 cargo clean 会删除整个目标目录:

Read more...
1 of 15 Next Page