背景
由于 rustup 官方服务器在国外,直接按照 rust 官网的指南 (opens new window)安装非常容易失败,即使不失败也慢成狗,换用用国内的镜像则可以分分钟搞定。
#官方安装方法
-
命令
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
#使用国内镜像加速安装
#原理
官方的 rustup-init.sh (opens new window)脚本支持配置以下两个变量
RUSTUP_UPDATE_ROOT:脚本的默认值为 https://static.rust-lang.org/rustup,指定 rust-init 的下载地址,覆写外部同名的环境变量可替换这个值。目前国内可用地址有RUSTUP_DIST_SERVER:默认值为 https://static.rust-lang.org,指定 rust 配套组件的下载地址,覆写同名的环境变量可替换这个值。目前国内可用地址有
#安装
以清华源为例
# 可以把以下两行添加到 ~/.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
温馨提示i
适用于未把 RUSTUP_UPDATE_ROOT 和 RUSTUP_DIST_SERVER 添加到 ~/.bashrc 的场景
rust 安装后,会创建文件 $HOME/.cargo/env,支持通过此文件配置其包管理工具 cargo。为了以后都从国内镜像源下载包,可以将上面的环境变量加入到 $HOME/.cargo/env 文件
echo "RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup" >> ~./ .cargo/env
#使用国内镜像加速更新 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"