参考:
- https://rsproxy.cn/
- https://bytedance.larkoffice.com/docx/Fa6vdnOgQoTDLcxGjwAcU0qdnCf
- https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-index/
- https://www.cnblogs.com/trigger-cn/p/18334279
安装 Rust
步骤一:设置 Rustup 镜像
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"步骤二:安装 Rust(请先完成步骤一的环境变量导入并 source rc 文件或重启终端生效)
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh设置国内源
步骤三:设置 crates.io 镜像, 修改配置 ~/.cargo/config,已支持 git 协议和 sparse 协议,>=1.68 版本建议使用 sparse-index,速度更快。
Note
https://rsproxy.cn/ 的内容比较旧,这里参考 https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-index/ 、https://www.cnblogs.com/trigger-cn/p/18334279
编辑 $CARGO_HOME/config.toml 文件,添加以下内容:
[source.crates-io]
replace-with = 'aliyun' # 指定使用下面哪个源,修改为source.后面的内容即可
#阿里云
[source.aliyun]
registry = "sparse+https://mirrors.aliyun.com/crates.io-index/"
# 中国科学技术大学
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"
# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index/"
# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
# rustcc社区
[source.rustcc]
registry = "https://code.aliyun.com/rustcc/crates.io-index.git"
注:sparse+ 表示在使用稀疏索引,链接末尾的 / 不能缺少。
注:$CARGO_HOME:在 Windows 系统默认为:%USERPROFILE%\.cargo,在类 Unix 系统默认为:$HOME/.cargo。
注:cargo 仍会尝试读取不带 .toml 扩展名的配置文件(即 $CARGO_HOME/config),但从 1.39 版本起,cargo 引入了对 .toml 扩展名的支持,并将其设为首选格式。请根据使用的 cargo 版本选择适当的配置文件名。
注:使用 cargo search、cargo info 等命令时需要添加 --registry mirror,例如 cargo search --registry mirror reqwest。
在 Linux 环境可以使用下面的命令完成:
mkdir -vp ${CARGO_HOME:-$HOME/.cargo}
cat << EOF | tee -a ${CARGO_HOME:-$HOME/.cargo}/config.toml
[source.crates-io]
replace-with = 'mirror'
[source.mirror]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
[registries.mirror]
index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
EOF截至目前,可以通过 cargo +nightly -Z sparse-registry update 使用稀疏索引。
cargo 1.68 版本开始支持稀疏索引:不再需要完整克隆 crates.io-index 仓库,可以加快获取包的速度。如果您的 cargo 版本大于等于 1.68,可以直接使用而不需要开启 nightly。