< 返回版块

2020-05-12 12:14    Editor:Mike Tang

Tags:rust,crates.io,mirror

Rust国内镜像源,涉及两部分,第一部分:Rustup及Rust编译器套件的镜像;第二部分:crates.io源的镜像。

Rustup及Rust编译器套件

官方安装方法

先说官网指导的安装方法。网站 https://rustup.rs/ 上指示的一键安装方法如下:

类 Unix 平台(Linux, MacOS)

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

这个是一键安装:下载 rustup 脚本,并执行,会从官方镜像服务器下载安装Rust套件。

如果用这个方式,比较顺畅,推荐使用这种方式。

但国内用户,有的时候,下载会比较慢,或中途断掉,造成安装失败。

Windows

官方推荐,使用

https://static.rust-lang.org/rustup/dist/i686-pc-windows-gnu/rustup-init.exe

然后根据提示一步一步安装。不过,据实际操作,官方的提示,貌似不太友好。

实际测试表明,国内用户用这种方法下载安装,失败(网络下载中断)的机率特别高,原因未明。

利用国内镜像加速 rustup 的安装

首先,我们假设,你能成功下载 https://sh.rustup.rs 脚本或者 rustup-init.exe

如果这一步都走不通,别急,也有办法。

你可以通过 rustcc.cn 镜像下载安装器,比如

http://mirrors.rustcc.cn/rustup/archive/1.21.1/x86_64-pc-windows-gnu/rustup-init.exe
或
http://mirrors.rustcc.cn/rustup/archive/1.21.1/i686-unknown-linux-musl/rustup-init

其中,x86_64-pc-windows-gnu 这个平台名字的位置可以换成以下任意一种(Windows下文件名带后续 .exe,其它平台不带):

                                i586-unknown-linux-musl           thumbv7em-none-eabi
aarch64-apple-ios               i686-linux-android                thumbv7em-none-eabihf
aarch64-fuchsia                 i686-pc-windows-gnu               thumbv7m-none-eabi
aarch64-linux-android           i686-pc-windows-msvc              thumbv7neon-linux-androideabi
aarch64-pc-windows-msvc         i686-unknown-freebsd              thumbv7neon-unknown-linux-gnueabihf
aarch64-unknown-linux-gnu       i686-unknown-linux-gnu            thumbv8m.base-none-eabi
aarch64-unknown-linux-musl      i686-unknown-linux-musl           thumbv8m.main-none-eabi
aarch64-unknown-none            mips64el-unknown-linux-gnuabi64   thumbv8m.main-none-eabihf
aarch64-unknown-none-softfloat  mips64el-unknown-linux-muslabi64  wasm32-unknown-emscripten
armebv7r-none-eabi              mips64-unknown-linux-gnuabi64     wasm32-unknown-unknown
armebv7r-none-eabihf            mips64-unknown-linux-muslabi64    wasm32-wasi
arm-linux-androideabi           mipsel-unknown-linux-gnu          x86_64-apple-darwin
arm-unknown-linux-gnueabi       mipsel-unknown-linux-musl         x86_64-apple-ios
arm-unknown-linux-gnueabihf     mips-unknown-linux-gnu            x86_64-fortanix-unknown-sgx
arm-unknown-linux-musleabi      mips-unknown-linux-musl           x86_64-fuchsia
arm-unknown-linux-musleabihf    nvptx64-nvidia-cuda               x86_64-linux-android
armv5te-unknown-linux-gnueabi   powerpc64le-unknown-linux-gnu     x86_64-pc-windows-gnu
armv5te-unknown-linux-musleabi  powerpc64-unknown-linux-gnu       x86_64-pc-windows-msvc
armv7a-none-eabi                powerpc-unknown-linux-gnu         x86_64-rumprun-netbsd
armv7-linux-androideabi         riscv32imac-unknown-none-elf      x86_64-sun-solaris
armv7r-none-eabi                riscv32imc-unknown-none-elf       x86_64-unknown-cloudabi
armv7r-none-eabihf              riscv32i-unknown-none-elf         x86_64-unknown-freebsd
armv7-unknown-linux-gnueabi     riscv64gc-unknown-linux-gnu       x86_64-unknown-linux-gnu
armv7-unknown-linux-gnueabihf   riscv64gc-unknown-none-elf        x86_64-unknown-linux-gnux32
armv7-unknown-linux-musleabi    riscv64imac-unknown-none-elf      x86_64-unknown-linux-musl
armv7-unknown-linux-musleabihf  s390x-unknown-linux-gnu           x86_64-unknown-netbsd
asmjs-unknown-emscripten        sparc64-unknown-linux-gnu         x86_64-unknown-redox
i586-pc-windows-msvc            sparcv9-sun-solaris
i586-unknown-linux-gnu          thumbv6m-none-eabi

下载完成后,就可以进行下面的配置加速安装。

利用 rustcc 镜像进行安装或升级

把下面两行添加到你的 .bashrc 或 .bash_profile 中,并执行 source 或重开终端:

export RUSTUP_DIST_SERVER=http://mirrors.rustcc.cn
export RUSTUP_UPDATE_ROOT=http://mirrors.rustcc.cn/rustup

配置了这个后,不管是第一次安装(执行官方的脚本命令,执行下载的 rustup-init 文件),还是执行 rustup 的升级指令 rustup update,都会从 rustcc.cn 镜像上下载。对国内用户来说,基本会加速不少。

此方法对 Windows 下的 rustup-init.exe 同样有效(需要把上面两个变量加入环境变量键值对里面,然后在 cmd 中执行 rustup-init.exerustup update)。

其它国内可选镜像

国内还有其它一些可选镜像,

# 清华大学
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup

# 中国科学技术大学
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

# 上海交通大学
RUSTUP_DIST_SERVER=https://mirrors.sjtug.sjtu.edu.cn/rust-static/

配置方法与前文相同。


crates.io 源国内镜像

国内用户在 cargo build 的时候,下载 crates.io 上的包,经常会遇到各种问题,因此,国内众多开发者一起想办法,提供了不少 crates.io 源镜像。

编辑你的 ~/.cargo/config 文件(没有的话就创建一个),添加如下内容:

# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

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

# rustcc 1号源
[source.rustcc]
registry="git://crates.rustcc.com/crates.io-index"

# rustcc 2号源
[source.rustcc2]
registry="git://crates.rustcc.cn/crates.io-index"

# 清华大学
[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 镜像为 rust 相关专属镜像,其它站皆为综合镜像(各种语言仓库,各种Linux发行版等)。从稳定性来说,专属镜像会好一些。

rustcc rustup镜像同步参数:

  • stable version 是当天同步,会比官方延迟 12~24 小时左右(同步需要时间);
  • nightly version 是5天同步一次,算上延迟,大概会有 1~6 天的滞后。
  • 只保留最近一个版本的 stable 和 nightly。

rustcc.cn 服务器,带宽为 5M。rustcc.com 服务器,带宽为 10M。

国内的其它源的参数,请查询相关页面说明。