重新组织优化<<下载依赖太慢了>>章节

pull/1230/head
sunface 1 year ago
parent c4e61b5401
commit dd5bd85206

@ -147,6 +147,7 @@
- [优雅的关闭](advance-practice/graceful-shutdown.md)
- [异步跟同步共存](advance-practice/bridging-with-sync.md)
<!-- - [Rust 设计模式](advance-practice/design-pattern.md) -->
- [Rust 难点攻关](difficulties/intro.md)
- [切片和切片引用](difficulties/slice.md)

@ -0,0 +1,4 @@
# Rust 设计模式
https://github.com/rust-unofficial/patterns

@ -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` 目录

Loading…
Cancel
Save