搭建 crates 代理

官方的 crates 在国内访问比较慢,国内各大同步的镜像网址也不稳定,经常也有卡的时候。所以有在内网搭建一套 crates 代理的需要,方法如下:

第一步: 安装同步工具

1
2
3
4
https://github.com/ChrisMacNaughton/cargo-cacher.git
cd cargo-cacher
cargo build --release
cp target/release/cargo-cacher /usr/bin

第二步:创建系统服务
这里用清华的 index 仓库会快一点,否则很长时间才能 clone 下来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vim /usr/lib/systemd/system/cargo-cacher.service
[Unit]
Description= cargo cache daemon
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/bin/cargo-cacher --all -d -e http://192.168.0.100 -p :80 -g https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git

[Install]
WantedBy=multi-user.target

# 重载 systemd
systemctl daemon-reload
# 加入开启启动
systemctl enable cargo-cacher
# 启动服务
systemctl start cargo-cacher

第三步: 修改本地 cargo 配置

1
2
3
4
5
6
7
vim $HOME/.cargo/config
[source]
[source.crates-io]
replace-with = "mirror"

[source.mirror]
registry = "http://192.168.0.100/index"

至此,下载依赖的速度得到非常大的提升。