如何清除Cargo缓存?

54
当我运行 cargo build 时,各种库会存储在文件夹 /usr/local/lib/rustlib/ 中。
清除这些库的正确方法是什么?我可以手动使用 rm 删除这些文件,但那样做是否正确?我注意到 /usr/local/lib/rustlib/manifest 是一个包含所有库填充文件路径列表的文件,因此如果我手动删除这些文件,可能会导致一些问题。
2个回答

52

安装并运行cargo-cache清除~/.cargo文件夹中的缓存:


cargo install cargo-cache
cargo cache -a

1
由于“需要功能resolver”,导致错误 :sad_face: - Mathieu CAROFF
错误:没有这样的子命令:cache - chovy
6
@chovy,你记得先安装cargo-cache吗? - Michael Mc Donnell
1
如果您不再需要任何货物箱子,比如只是想编译一个项目,然后在之后释放空间,可以使用的命令是 cargo-cache --remove-dir all(或者简写为 cargo-cache -r all)。 - Vopel
当使用cargo不支持的版本依赖时,我发现这很有用。例如,当您将依赖项从“1.2.0-dev.1”切换到“1.2.0-dev.2”时,Cargo将无法下载正确的依赖项。它不遵守semver“预发布版本”(Cargo没有记录此内容),但遵守semver“构建元数据”(已记录)。 - Ben Butterworth
我在使用缓存时遇到了一个问题,导致我无法正常安装/构建cargo-cache。对我有效的方法是只需更新rust(rustup update),这样它就不会使用之前版本的rustc生成的缓存构建。这只有在我不需要使用特定版本的rustc时才可能实现,但它确实帮助我放心,我不会通过手动删除文件来破坏任何东西。之后,我能够安装cargo-cache并进行完整的缓存重置。 - Locke

29
我认为 manifest 文件仅用于内置库,即与 rustc 分发的那些库。 cargo 本身会将东西存储在 ~/.cargo 中(目前),如果您只想删除所有库,则删除该目录不会破坏任何内容。
如果您只想让 cargo 重新构建/更新依赖项,则可以运行 cargo update

1
谢谢指点我 ~/.cargo,这正是我在寻找的! - bojangle
24
如果您不想重新安装您已经安装的很酷的Rust工具,那么请保留bin文件夹。 - DenisKolodin
9
特别地,默认情况下,这将同时移除 cargo 可执行文件本身。 - Matthew Strawbridge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接