< 返回版块

2019-03-19 17:40    责任编辑:Mike

标签:rust,mirrors

Rust编译器发布版本以及官方仓库都是存储在美区 AWS S3 上面的,这项云存储服务在国内是被 GFW 屏蔽了的,所以在下载编译器和构建 Rust 项目下载依赖时很容易失败,新手在尝试 Rust 时请记住这不是 Rust 本身的问题。

在 Rust 中文社区的努力下,中科大开源镜像站 收录了 Rust 和 Crates。有了镜像站国内 Rust 爱好者就可以愉快地玩 Rust 语言了,感谢他们为我们提供高速的镜像服务。

Cargo 包管理

Rust 包管理使用 crate 格式的压缩包存储和发布库,官方有一个集中式的仓库,由于其使用了动态网站技术,给镜像增加了难度,不过在 Rust 社区努力下,中科大也加入了对 crates.io 的支持,实现方式见这个讨论

使用镜像只需要在项目根目录下新建一个 .cargo/config 文件,并在其中加入以下内容:

[registry]
index = "git://mirrors.ustc.edu.cn/crates.io-index"

之后 cargo buildcargo run 下载依赖时就会从镜像下载。如果项目要发到 github 等公开仓库,你可能还需要将 .cargo/config 文件加入 gitignore

cargo 可以像 git 一样进行全局配置(似乎在multirust下不起作用),把上面的配置写到 $HOME/.cargo/config 文件里面,如果没有相应目录和文件则新建一个

mkdir -p $HOME/.cargo
cat > $HOME/.cargo/config << EOF
[registry]
index = "git://mirrors.ustc.edu.cn/crates.io-index"
EOF

如果 cargo 版本为 0.13.0 或以上, 需要更改 $HOME/.cargo/config 为以下内容:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

有了 $HOME/.cargo/config 这个全局配置后,以后新建项目都会默认使用这个配置,项目目录下就不需要另行配置

注意:Windows 环境下通过文件管理器没法创建以点开头的目录,需要通过命令行创建 .cargo 目录