一、Rustup下载
按我的理解,这个工具类似于Steam,Rust则是你要安装的游戏,你可以在这个下载器命令行界面进行对Rust的镜像源、安装位置配置。
在Rust官网
二、Rust安装前环境配置
Cargo是Rust的包管理器,地位等同于Python的pip,是下载安装包的;
Crate意思就是包,跟Python里的Package是一样的;
Cargo.toml
就是声明项目所依赖的外部库,跟Python的requirements.txt
/pyproject.toml
类似;另外,Rust的Rustup是一个较为独特的工具,可以靠它来进行版本管理、工具链更新、编译等功能,这是C++、Python所不具备的,如果一定要类比,那它类似于Python中的pyenv+conda;
综上所述,我们要想配置国内镜像源的话,就应该从配置Cargo源以及安装工具链的Rustup源入手,其中,配置Cargo源要在Rust工具链安装完成之后进行,而配置工具链的源应该在最开始进行。
根据官方
2.1.配置工具链国内源
目前网上评价比较好的Rust源,一个是中科大的源(USTC
可以使用管理员权限的powershell命令添加环境变量,也可以手动搜索“环境变量”,打开后选择环境变量进行添加
选择新建系统变量,按照字节跳动官方文档进行配置:
# 按照这个参数进行设置 RUSTUP_DIST_SERVER="https://rsproxy.cn" RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
Rust官方文档对这两个环境变量是这样解释的:
RUSTUP_DIST_SERVER
(default:https://static.rust-lang.org
). Sets the root URL for downloading static resources related to Rust. You can change this to instead use a local mirror, or to test the binaries from the staging directory.
RUSTUP_UPDATE_ROOT
(defaulthttps://static.rust-lang.org/rustup
). Sets the root URL for downloading self-update.
(可选)对于中科大源,本步骤的系统变量则改为:
RUSTUP_DIST_SERVER="https://mirrors.ustc.edu.cn/rust-static" RUSTUP_UPDATE_ROOT="https://mirrors.ustc.edu.cn/rust-static/rustup"
配置完成后一路返回点“确定”,即可完成工具链源的配置。
2.2.(可选)自定义Rust及工具链安装位置
如果不想更改安装位置的话,RUSTUP_HOME
的默认值是~/.rustup
或 %USERPROFILE%/.rustup
,也就是装在C盘下的用户目录下,这个不用专门操作,直接跳过这一步,看下一个步骤就行了。
如果要改安装位置,比如我想改到D盘,那就要继续新建环境变量:
CARGO_HOME="D:\Rust\cargo" RUSTUP_HOME="D:\Rust\rustup"
三、安装Rust
运行之前在第一步下载好的rustup-init.exe
,输入1并回车,开始下载
因为我电脑上之前就有Visual Studio等一些工具,所以这里没有弹出下载界面,只在命令行内就完成了下载过程,大概三四分钟的样子:
然后回车后自动关闭命令行界面,可以在环境变量-用户变量-Path处看到程序自动添加的CARGO_HOME\bin
变量:
四、配置Cargo源并验证
4.1.字节源的一个错误配置
在CARGO_HOME
下新建config.toml
文件(cargo版本 >= 1.68),添加内容如下,这一步用的是字节跳动的源(内容来自字节跳动镜像站
[source.crates-io] replace-with = 'rsproxy-sparse' [source.rsproxy] registry = "https://rsproxy.cn/crates.io-index" [source.rsproxy-sparse] registry = "sparse+https://rsproxy.cn/index/" [registries.rsproxy] index = "https://rsproxy.cn/crates.io-index" [net] git-fetch-with-cli = true
如果用中科大的源,应该换成如下内容(内容来自中科大镜像站
[source.crates-io] replace-with = 'ustc' [source.ustc] registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/" [registries.ustc] index = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
当配置Cargo国内源之后,使用cargo search
和cargo info
命令需要加上 --registry xxxx
参数。如果是中科大源,就加上 --registry ustc
;如果是字节跳动的源,就加上 --registry rsproxy-sparse
。
⚠️当配置字节跳动的源运行cargo search serde --registry 'rsproxy-sparse'
命令时,会得到报错:
error: registry index was not found in any configuration: `rsproxy-sparse`
意思是Cargo 在其配置中找不到名为 rsproxy-sparse
的注册表 (Registry) 定义。
而中科大源则不会出现这个问题:
那么应该如何更改字节源的配置呢?
4.2.正确的字节源配置内容
我们可以仿照中科大源的配置文件,给字节跳动的源加两行:
[registries.rsproxy-sparse] index = "sparse+https://rsproxy.cn/index/"
修改config.toml
文件后,重新运行命令cargo search serde --registry rsproxy-sparse
,发现已经成功了:
那么字节源也配置完成了。
其实这个配置错误的问题在字节源官网的
可以中科大源结合着字节源一起用,我看中科大的镜像维护