国内 macOS/Linux 安装 rust

12/25/2020 unixrust

# 背景

由于 rustup 官方服务器在国外,直接按照 rust 官网的指南 (opens new window) 安装非常容易失败,即使不失败也慢成狗,换用用国内的镜像则可以分分钟搞定。

# 官方安装方法

# 使用国内镜像加速安装

# 原理

官方的 rustup-init.sh (opens new window) 脚本支持配置以下两个变量

  • RUSTUP_UPDATE_ROOT:脚本的默认值为 https://static.rust-lang.org/rustup,指定 rust-init 的下载地址,覆写外部同名的环境变量可替换这个值。目前国内可用地址有
    • https://mirrors.ustc.edu.cn/rust-static/rustup
  • RUSTUP_DIST_SERVER:默认值为 https://static.rust-lang.org,指定 rust 配套组件的下载地址,覆写同名的环境变量可替换这个值。目前国内可用地址有
    • https://mirrors.sjtug.sjtu.edu.cn/rust-static/
    • https://mirrors.tuna.tsinghua.edu.cn/rustup
    • https://mirrors.ustc.edu.cn/rust-static

# 安装

以清华源为例

# 可以把以下两行添加到 ~/.bashrc 等文件,使之成为全局环境变量,这样后续所有 rustup 或 cargo 命令均会使用此环境变量
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
1
2
3
4
5

温馨提示i

适用于未把 RUSTUP_UPDATE_ROOTRUSTUP_DIST_SERVER 添加到 ~/.bashrc 的场景
rust 安装后,会创建文件 $HOME/.cargo/env,支持通过此文件配置其包管理工具 cargo。为了以后都从国内镜像源下载包,可以将上面的环境变量加入到 $HOME/.cargo/env 文件

echo "RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup"  >> ~./ .cargo/env
1

# 使用国内镜像加速更新 crate 拉取

# 替换 crates.io

更新 ~/.cargo/config 更新如下

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'sjtu'
#replace-with = 'ustc'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

添加 Github 镜像加速器也能达到类似效果,参见 国内基于 Github 镜像加速器加快 github.com 的仓库拉取

# 替换 github.com 源

借助 git 全局替换 github.comfastgit.org (opens new window) 等代理服务,或直接修改 Cargo.toml 的引用源 url 中的 github.comfastgit.org (opens new window) 等代理服务的地址,具体参见 国内基于 Github 镜像加速器加快 github.com 的仓库拉取

# 参考文献