windows 下离线安装 rust + mingw

说明

windows 安装 Rust 默认使用的C语言依赖 Visual Studio,但该工具占用空间大安装也较为麻烦,可以选用轻便的 mingw64 包。

参考文档

mingw64 的安装和配置

mingw64 的下载地址: https://github.com/niXman/mingw-builds-binaries/releases
下载类似
x86_64-15.1.0-release-posix-seh-msvcrt-rt_v12-rev0.7z
或者
x86_64-15.1.0-release-posix-seh-ucrt-rt_v12-rev0.7z
的文件即可。

关于 mingw64 压缩包关键字说明:

  • 架构(Architecture):x86_64表示压缩包适用于64位的x86处理器架构。 版本(Version):15.1.0-release 表示压缩包的版本号为15.1.0,并且是正式发布的版本。 操作系统平台(Operating System Platform): posix:适用于符合POSIX标准的操作系统,如Linux、UNIX等。 win32:适用于32位的Windows操作系统。 (如果Linux和Window混用选posix;如果只用Windows开发选win32)
  • 异常处理(Exception Handling): seh:压缩包使用结构化异常处理(Structured Exception Handling)来处理异常。
  • 运行时库(Runtime Library): msvcrt:压缩包使用Microsoft Visual C++ 运行时库(MSVCRT);MSVCRT 是 Microsoft Visual C++ 编译器的旧版运行时库,通常与早期的Visual C++ 版本(如Visual Studio 2010及更早版本)相关联。
    ucrt:压缩包使用通用C运行时库(UCRT);UCRT 是自 Windows 10 起引入的新一代运行时库,与较新版本的Visual C++(如Visual Studio 2015及更新版本)相关联。
    综上所述,UCRT更新推荐开发使用,如果考虑兼容则用MSVCRT
  • 版本修订(Revision):rev0 表示这些压缩包的修订版本号。

安装完成后,务必把mingw安装目录下的bin目录添加到PATH环境变量中

rust 的安装和配置

下载

下载页面: https://forge.rust-lang.org/infra/other-installation-methods.html

注意下载文件中:

  • x86_64-pc-windows-gnu 使用的是 mingw64 的 C 语言环境
  • x86_64-pc-windows-msvc 使用的是 Microsoft C++ Build Tools 的 C 语言环境,所以要安装 Visual Studio

由于我们这里使用的是 mingw64 的 C 语言环境,所以下载包含 x86_64-pc-windows-gnu 字样的安装文件:
https://static.rust-lang.org/dist/rust-1.88.0-x86_64-pc-windows-gnu.msi

安装

使用如下命令解压 msi 文件:

1msiexec /a "F:\downloads\rust-1.88.0-x86_64-pc-windows-gnu.msi" /qb TARGETDIR="D:\rust-1.88.0-x86_64-pc-windows-gnu"

环境变量配置

注意:务必要把mingw安装目录下的bin目录,以及rust安装目录下的bin目录都添加到PATH环境变量中

如果是用 Windows Terminal 工具,直接新加一个配置文件,在启动命令中追加环境变量;如下所示:

1%SystemRoot%\System32\cmd.exe /k set PATH=%PATH%;D:\dev\Mingw-w64-x86_64-15.1.0-release-posix-seh-msvcrt-rt_v12-rev0\bin;D:\dev\rust-1.88.0-x86_64-pc-windows-gnu

检查是否安装成功

1D:\dev\bin>rustc --version
2rustc 1.88.0 (6b00bc388 2025-06-23)
3
4D:\dev\bin>cargo --version
5cargo 1.88.0 (873a06493 2025-05-10)

cargo 设置

cargo 是 rust 的包管理工具(和java的maven、node的npm类似)
默认情况下,所以的依赖包放在当前用户目录下的 .cargo 文件夹中
例如,windows 环境位于 C:\Users\你的用户名\.cargo
如果要更改存储位置,可以提前设置环境变量 CARGO_HOME

1# 设置临时环境变量
2set CARGO_HOME=D:\dev\rust-repository
3
4# 为当前用户设置永久环境变量
5setx CARGO_HOME "D:\dev\rust-repository"
6
7# 设置系统级永久环境变量
8setx CARGO_HOME "D:\dev\rust-repository" /M

cargo 配置国内源

在上面的 CARGO_HOME 目录下新建 config.toml 文件($CARGO_HOME/config.toml),内容如下:

 1[source.crates-io]
 2replace-with = 'tuna'
 3
 4# 上海交通大学
 5[source.sjtu]
 6registry = "sparse+https://mirrors.sjtug.sjtu.edu.cn/crates.io-index/"
 7
 8# 清华大学
 9[source.tuna]
10registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
11
12[registries.tuna]
13index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
14
15# 中国科学技术大学
16[source.ustc]
17registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
18
19[registries.ustc]
20index = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
21
22# 阿里云源
23[source.aliyun]
24registry = "sparse+https://mirrors.aliyun.com/crates.io-index/"
25
26# 字节跳动源
27[source.rsproxy]
28registry = "https://rsproxy.cn/crates.io-index"
29
30[source.rsproxy-sparse]
31registry = "sparse+https://rsproxy.cn/index/"
32
33[registries.rsproxy]
34index = "https://rsproxy.cn/crates.io-index"
35
36[net]
37git-fetch-with-cli = true

说明:

  • 国内镜像可以书写多个,类似 [source.XXXXXX] 的结构;XXXXXX 表示镜像源的名称
  • registry 表示镜像源的url;url中的sparse+ 表示支持稀疏索引(cargo 版本必须 >= 1.68 ;可以加快获取包的速度),链接末尾的 / 不能缺少
  • replace-with 为替换的镜像源的名称

使用示例

 1# 新建名为 rust-demo 的项目
 2cargo new rust-demo
 3
 4# 进入项目目录
 5cd rust-demo
 6
 7# 运行项目
 8cargo run
 9
10# 构建项目
11cargo build
12
13# 为当前项目添加依赖
14cargo add actix-web diesel
15
16# 为当前项目删除依赖
17cargo remove diesel