Typecho合集站.  留言 关于 记事本 
首页 > TYPECHO > typecho教程 > typecho插件 > typecho主题 > 网站开发 > PHP > Linux > web > 编程 > 个人收藏 > 互联网旧文 > 互联网趣文

Rust配置crates.io国内镜像,加速依赖更新

在中国做软件开发,往往需要特殊的技能,这点非常麻烦。crates.io经常因为网络问题会卡在

$cargo update
  Updating crates.io index

幸运的话可以通过,最头疼的是等了相当长的时间过后因为网络问题的终止,解决这个问题可以配置crates.io国内镜像,这里以清华大学开源软件镜像站做例子,编辑~/.cargo/config文件,添加以下内容

[source.crates-io]
replace-with = 'tuna'

[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

这个时候在回来执行cargo update,Cargo项目会从已配置在~/.cargo/config里的registry下载依赖包了。

$cargo update
  Updating `https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git` index

速度要比crates.io快不少。但这个方式在做容器化编译时因为容器化内环境缺少crates.io源配置,导致容器内下载依赖仍然会从默认的crates.io下载

Dockerfile

FROM rust:1.49 as builder
WORKDIR/usr/src/myapp
COPY. .
RUNcargo install --path .

FROM debian:buster-slim
RUNapt-get update && apt-get install -y extra-runtime-dependencies && rm -rf /var/lib/apt/lists/*
COPY--from=builder /usr/local/cargo/bin/myapp /usr/local/bin/myapp
CMD["myapp"]

解决方案是直接在Cargo项目根目录下创建.cargo/config.toml文件,添加原~/.cargo/config文件里的内容即可,也就是把原来全局配置的~/.cargo/config搬Cargo项目里,config改名config.toml

$tree
.
|-- .cargo
|   `-- config.toml
|-- .gitignore
|-- Cargo.lock
|-- Cargo.toml
`-- src
    `-- main.rs

crates.io国内镜像除了清华大学镜像站以外还有其它公共镜像资源也都提供,根据实际网速测试选择合适的即可


转载自:https://www.qttc.net/


发表新评论


本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除
Theme by
夏目贵志, Powered by Typecho | RSS | sitemap