|
|
|
@ -4,10 +4,14 @@
|
|
|
|
|
但悲剧的是,它的默认镜像地址是在国外,这就导致了某些时候难免会遇到下载缓慢或者卡住的情况,下面我们一起来看看。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 下载很慢
|
|
|
|
|
解决下载缓慢有两种方式:
|
|
|
|
|
## 下载很慢?
|
|
|
|
|
|
|
|
|
|
1. 开启命令行或者全局翻墙
|
|
|
|
|
作为国外的语言,下载慢是正常的,隔壁的那位还被墙呢:)
|
|
|
|
|
|
|
|
|
|
解决下载缓慢有两种途径:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 开启命令行或者全局翻墙
|
|
|
|
|
经常有同学反馈,我明明开启翻墙了,但是下载依然还是很慢,无论是命令行中下载还是 VSCode 的 rust-analyzer 插件自动拉取。
|
|
|
|
|
|
|
|
|
|
事实上,翻墙工具默认开启的仅仅是浏览器的翻墙代理,对于命令行或者软件中的访问,并不会代理流量,因此这些访问还是通过正常网络进行的,自然会失败。
|
|
|
|
@ -18,14 +22,12 @@
|
|
|
|
|
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. 修改 Rust 的下载镜像为国内的镜像地址
|
|
|
|
|
这个效果最直接,但是就是稍有些麻烦。
|
|
|
|
|
### 修改 Rust 的下载镜像为国内的镜像地址
|
|
|
|
|
这个效果最直接,一劳永逸,但是就是配置起来略微麻烦。
|
|
|
|
|
|
|
|
|
|
为了使用 `crates.io` 之外的注册服务,我们需要对 `$HOME/.cargo/config.toml` ($CARGO_HOME 下) 文件进行配置,添加新的服务提供商,有两种方式可以实现:增加新的镜像地址和覆盖默认的镜像地址。
|
|
|
|
|
|
|
|
|
|
> 这里推荐使用[科大的注册服务](http://mirrors.ustc.edu.cn/help/crates.io-index.html)来提升下载速度,以下注册服务的链接都是科大的。
|
|
|
|
|
|
|
|
|
|
#### 增加新的镜像地址
|
|
|
|
|
### 新增镜像地址
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**首先是在 `crates.io` 之外添加新的注册服务**,在 `$HOME/.cargo/config.toml` (如果文件不存在则手动创建一个)中添加以下内容:
|
|
|
|
@ -44,7 +46,29 @@ time = { registry = "ustc" }
|
|
|
|
|
|
|
|
|
|
**在重新配置后,初次构建可能要较久的时间**,因为要下载更新 `ustc` 注册服务的索引文件,还挺大的...
|
|
|
|
|
|
|
|
|
|
#### 覆盖默认的镜像地址
|
|
|
|
|
#### 科大镜像
|
|
|
|
|
上面使用的是科大提供的注册服务,也是 Rust 最早期的注册服务,感谢大大们的贡献。除此之外,大家还可以选择下面的镜像服务:
|
|
|
|
|
|
|
|
|
|
#### 字节跳动
|
|
|
|
|
|
|
|
|
|
最大的优点就是不限速,当然,你的网速如果能跑到 1000Gbps,我们也可以认为它无情的限制了你,咳咳。
|
|
|
|
|
|
|
|
|
|
```toml
|
|
|
|
|
[source.crates-io]
|
|
|
|
|
replace-with = 'rsproxy'
|
|
|
|
|
|
|
|
|
|
[source.rsproxy]
|
|
|
|
|
registry = "https://rsproxy.cn/crates.io-index"
|
|
|
|
|
|
|
|
|
|
[registries.rsproxy]
|
|
|
|
|
index = "https://rsproxy.cn/crates.io-index"
|
|
|
|
|
|
|
|
|
|
[net]
|
|
|
|
|
git-fetch-with-cli = true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 覆盖默认的镜像地址
|
|
|
|
|
事实上,我们更推荐第二种方式,因为第一种方式在项目大了后,实在是很麻烦,全部修改后,万一以后不用这个镜像了,你又要全部修改成其它的。
|
|
|
|
|
|
|
|
|
|
而第二种方式,则不需要修改 `Cargo.toml` 文件,**因为它是直接使用新注册服务来替代默认的 `crates.io`**。
|
|
|
|
@ -89,3 +113,5 @@ $ cargo build
|
|
|
|
|
- 增加下载速度,见前面内容
|
|
|
|
|
- 耐心等待持有锁的用户构建完成
|
|
|
|
|
- 强行停止正在构建的进程,例如杀掉 IDE 使用的 rust-analyzer 插件进程,然后删除 `$HOME/.cargo/.package_cache` 目录
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|