<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Cargo on 学无止境</title>
		<link>https://sunnnnner.github.io/tags/cargo/</link>
		<description>Recent content in Cargo on 学无止境</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Fri, 31 Jul 2026 15:00:00 +0800</lastBuildDate>
		
			<atom:link href="https://sunnnnner.github.io/tags/cargo/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Rust 与 Cargo 清理指南：删除旧工具链和构建缓存</title>
				<link>https://sunnnnner.github.io/posts/rust/%E4%BC%98%E5%8C%96/rustcargo%E6%B8%85%E7%90%86%E6%97%A0%E7%94%A8%E7%89%88%E6%9C%AC%E4%B8%8E%E6%9E%84%E5%BB%BA%E7%BC%93%E5%AD%98/</link>
				<pubDate>Fri, 31 Jul 2026 15:00:00 +0800</pubDate>
				<guid>https://sunnnnner.github.io/posts/rust/%E4%BC%98%E5%8C%96/rustcargo%E6%B8%85%E7%90%86%E6%97%A0%E7%94%A8%E7%89%88%E6%9C%AC%E4%B8%8E%E6%9E%84%E5%BB%BA%E7%BC%93%E5%AD%98/</guid>
				<description>&lt;p&gt;Rust 项目编译一段时间后，磁盘空间往往会被以下三类文件占满：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;项目中的 &lt;code&gt;target/&lt;/code&gt; 构建产物；&lt;/li&gt;&#xA;&lt;li&gt;Cargo 保存在 &lt;code&gt;$CARGO_HOME&lt;/code&gt;（通常是 &lt;code&gt;~/.cargo/&lt;/code&gt;）中的依赖缓存；&lt;/li&gt;&#xA;&lt;li&gt;rustup 安装的旧工具链、交叉编译目标和组件。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;它们的用途和清理方式并不相同。本文将分别介绍如何安全清理这些文件，并尽量避免不必要的重新下载和完整编译。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;建议先检查占用，再使用工具提供的 &lt;code&gt;--dry-run&lt;/code&gt; 预览结果。不要直接手动删除整个 &lt;code&gt;~/.cargo/&lt;/code&gt; 或 &lt;code&gt;~/.rustup/&lt;/code&gt; 目录。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;一先找出空间占用来源&#34;&gt;一、先找出空间占用来源&lt;/h2&gt;&#xA;&lt;p&gt;在 Linux 和 macOS 中，可以先查看 Rust 相关目录的大小：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;du -sh target 2&amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;du -sh &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;CARGO_HOME&lt;span style=&#34;color:#66d9ef&#34;&gt;:-&lt;/span&gt;$HOME/.cargo&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;du -sh &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;RUSTUP_HOME&lt;span style=&#34;color:#66d9ef&#34;&gt;:-&lt;/span&gt;$HOME/.rustup&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;常见目录的作用如下：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;位置&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;内容&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;清理后的影响&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;项目/target/&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;当前项目的编译产物&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;下次构建需要重新编译&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;$CARGO_HOME/registry/&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;crates.io 索引、&lt;code&gt;.crate&lt;/code&gt; 包和解压后的源码&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;后续可能重新下载或解压依赖&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;$CARGO_HOME/git/&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Git 依赖的仓库与检出内容&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;后续需要重新获取 Git 依赖&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;$CARGO_HOME/bin/&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;cargo install&lt;/code&gt; 安装的程序&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;删除后相应命令将无法使用&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;$RUSTUP_HOME/toolchains/&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Rust 工具链&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;删除后无法再使用对应版本&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;二清理项目的-target-构建产物&#34;&gt;二、清理项目的 &lt;code&gt;target/&lt;/code&gt; 构建产物&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-使用-cargo-原生命令&#34;&gt;1. 使用 Cargo 原生命令&lt;/h3&gt;&#xA;&lt;p&gt;不带参数的 &lt;code&gt;cargo clean&lt;/code&gt; 会删除整个目标目录：&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
