rust crate.io 配置国内源(cargo 国内源) warning: spurious network error (2 tries remainin...

这篇具有很好参考价值的文章主要介绍了rust crate.io 配置国内源(cargo 国内源) warning: spurious network error (2 tries remainin...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

rust 笔记
Crate 国内源配置

作者李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
邮箱 :291148484@163.com
本文地址:https://blog.csdn.net/qq_28550263/article/details/130758057



1. 概述

Rust 官方默认的 Cargo 源服务器为 crates.io,其同时也是 Rust 官方的 crate 管理仓库,但是由于官方服务器部署在北美洲,中国大陆用户下载速度较慢,甚至反复中断下载——你是否正在经历 cargo 安装模块太慢?甚至进度卡停?

cargo add xxxx
    Updating crates.io xxxx
warning: spurious network error (2 tries remaining): failed to receive response: 操作超时
; class=Os (2)
       Fetch [======>                  ]  30.16%, 415.60KiB/s

… enmm,不用担心。当你主动来查找时,那么就如你所猜想的,作为 rust 语言的包管理器的 cargo,当然也有国内源。

2. Window 下配置国内源

2.1 新建配置文件

如果你安装好了 rust,在你的 用户主目录 中有一个.cargo 目录。其中用户主目录一般是 C:\Users\ +当前用户名 为路径的目录。

2.2 编辑配置文件

如果安装完成了 rust 当前用户目录下有一个 .cargo 目录。新建 config 文件,编辑内容:

[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

2.3 也可以直接打开编辑器编辑

使用 Windows系统环境变量 $HOME 可以直接指向主目录。如果你安装了 VSCode,可以打开一个终端,输入以下命令:

code $HOME/.cargo/config

其中,code 所使用的是 VScode 的可执行文件:code.exe。运行上面命令后,VSCode 自动打开一个指向 config 文件的空文件:
rust 国内源,Rust学习笔记,rust,开发语言,字节源,清华源,国内源

然后编辑之前的内容,并保存即可。

2.4 powershell 命令添加环境变量

如果尽在本窗口有效,则可以使用以下命令:

$env:RUSTUP_DIST_SERVER="https://mirrors.sjtug.sjtu.edu.cn/rust-static"
$env:RUSTUP_UPDATE_ROOT="https://mirrors.sjtug.sjtu.edu.cn/rust-static/rustup"

你可以使用以下方式查看是否设置成功:

Write-Host $env:RUSTUP_DIST_SERVER
Write-Host $env:RUSTUP_UPDATE_ROOT

如需要写入为长期的环境变量则需要使用以下命令(其中User表示环境变量级别为当前用户,你也可以设置为系统级变量):

[System.Environment]::SetEnvironmentVariable('RUSTUP_DIST_SERVER','https://mirrors.sjtug.sjtu.edu.cn/rust-static','User')
[System.Environment]::SetEnvironmentVariable('RUSTUP_UPDATE_ROOT','https://mirrors.sjtug.sjtu.edu.cn/rust-static/rustup','User')

3. Linux 下配置 cargo 国内源

3.1 安装 vim

如果已经安装有 vim / vi 或之类编辑工具则可以忽略。

# linux 的 debin 版本如 ubuntu 使用 apt 包管理器。如使用 centOS 的改用 yum 包管理器安装
sudo apt update
sudo apt install vim

(如果你在 docker 容器中,不需要 sudo)

3.2 编写配置文件

使用 vim 新建(或编辑已有)一个config文件:

sudo vim ~/.cargo/config

(如果你在 docker 容器中,不需要 sudo)

这时 vim 建立一个新的为保存config文件,英文输入模式下,输入 i 进入编辑模式,添加以下内容(和在Windows 时编辑的配置文件一样):

[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

依次 exit:wq! 保存退出。

4. 关于 cargo 国内源

除了上面给出的配置,你可可以参考本节挑选一个自己喜欢的国内源进行配置。

字节跳动源

文档地址:https://rsproxy.cn/

crates.io 镜像

~/.cargo/config:

[source.crates-io]
# To use sparse index, change 'rsproxy' to 'rsproxy-sparse'
replace-with = 'rsproxy'

[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"

[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"

[net]
git-fetch-with-cli = true

Rustup 镜像:

~/.zshrc or ~/.bashrc:

export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"

上海交大源

地址:https://mirrors.sjtug.sjtu.edu.cn/docs/rust-static

使用方法:安装rustup,将以下环境变量加入~/.bashrc或类似文件中:

export RUSTUP_DIST_SERVER=https://mirror.sjtu.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirror.sjtu.edu.cn/rust-static/rustup

清华源

Rust crates.io 索引镜像

文档地址:https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-index.git/

编辑 ~/.cargo/config 文件,添加以下内容:

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

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

Rust crates.io 稀疏索引镜像

文档地址:https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-index/

编辑 ~/.cargo/config 文件,添加以下内容:

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

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

注:sparse+ 表示在使用稀疏索引,链接末尾的 / 不能缺少。

截至目前,可以通过 cargo +nightly -Z sparse-registry update 使用稀疏索引。

cargo 1.68 版本开始支持稀疏索引:不再需要完整克隆 crates.io-index 仓库,可以加快获取包的速度。如果您的 cargo 版本大于等于 1.68,可以直接使用而不需要开启 nightly。

中科大源

文档地址:http://mirrors.ustc.edu.cn/help/crates.io-index.html

Windows 用户在使用 crates 源时可能会出现 next InitializeSecurityContext failed: Unknown error 错误(见 https://github.com/ustclug/discussions/issues/339 和 https://github.com/rust-lang/cargo/issues/7096)。一个 workaround 是在运行 cargo 的时候加入环境变量 CARGO_HTTP_CHECK_REVOKE=false,或者在配置中增加:

[http]
check-revoke = false

cargo 1.68 版本开始支持稀疏索引:不再需要完整克隆 crates.io-index 仓库,可以加快获取包的速度。如果您的 cargo 版本大于等于 1.68,可以在 $HOME/.cargo/config 中添加如下内容:

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

[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"

$HOME/.cargo/config 中添加如下内容:

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

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

如果所处的环境中不允许使用 git 协议,可以把上述地址改为:文章来源地址https://www.toymoban.com/news/detail-743126.html

registry = "https://mirrors.ustc.edu.cn/crates.io-index"

到了这里,关于rust crate.io 配置国内源(cargo 国内源) warning: spurious network error (2 tries remainin...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust更换Cargo国内源,镜像了寂寞

    当我写作此文时,可能理解并不深刻。今日重读 Crates.io 文档,发现它理论上还是可以做到“既换皮又换身的”: A minimal registry can be implemented by having a git repository that contains an index, and a server that contains the compressed .crate files created by cargo package . A full-featured registry that supports

    2024年02月05日
    浏览(29)
  • 使用Cargo国内镜像提升Rust开发效率

    Rust是一门现代化的系统编程语言,而Cargo则是Rust的官方包管理工具。在进行Rust项目开发时,由于网络原因,从Crates.io下载依赖可能会很慢。为了提高开发效率,我们可以配置Cargo使用国内的镜像源,以加速包的下载和构建过程。 步骤一:进入Cargo配置目录 打开终端或命令提

    2024年02月21日
    浏览(40)
  • 【Rust】cargo update或者cargo build国内被墙失败解决办法

    cargo build 时下载失败(Mac 10.13.4),提示: error: failed to download from https://crates-io.proxy.ustclug.org/api/v1/crates/actix-codec/0.3.0/download Caused by: [56] Failure when receiving data from the peer (Received HTTP code 500 from proxy after CONNECT) 或者提示: error: failed to download from https://crates-io.proxy.ustclug.org/api/v1

    2023年04月08日
    浏览(50)
  • RUST 每日一省:发布到crates.io

            github是开源代码分享的地方,rust的开源项目除了github,我们还可以将其发布到 crates.io 上,然后其它用户就可以使用cargo进行安装使用了。其实步骤很简单,只有三条命令了,我们一次来看一下。         1、cargo package         首先,让 Cargo 帮你打个包:    

    2024年03月10日
    浏览(36)
  • 【Rust教程 | 基础系列2 | Cargo工具】Cargo介绍及使用

    在编程世界中,工具的选择与使用同样重要,甚至有时候比编程语言本身更为重要。对于Rust来说,Cargo就是这样一款强大的工具。本文将详细介绍Cargo的各项功能,并通过实例演示如何使用这些功能。希望通过本文,读者能够熟练掌握Cargo的使用,从而更好地进行Rust开发。

    2024年02月15日
    浏览(49)
  • 【Rust 基础篇】Rust Cargo 自定义构建

    在 Rust 中,Cargo 是一个功能强大的构建工具和包管理器,它可以帮助我们管理项目的依赖、构建和发布。Cargo 提供了许多默认的构建行为,但有时我们需要自定义构建过程以满足特定的需求。本篇博客将详细介绍如何在 Rust 中使用 Cargo 自定义构建过程,包括自定义构建脚本、

    2024年02月16日
    浏览(29)
  • Rust 使用Cargo

    假设你正在编写一个 Rust 程序,要使用一个名为 `rand` 的第三方库来生成随机数。首先,你需要在 `Cargo.toml` 文件中添加以下依赖项: ```toml [dependencies] rand = \\\"0.7.3\\\" ``` 然后运行 `cargo build`,Cargo 会自动从 crates.io 上下载和安装 `rand` 库。 在你的 Rust 代码中,你可以像这样使用

    2024年02月07日
    浏览(28)
  • Rust之Cargo的使用

    Cargo 是 Rust 的构建系统和包管理器。⼤多数 Rustacean 们使⽤ Cargo 来管理他们的 Rust 项⽬,因为它可以为你处理很多任务,⽐如构建代码、下载依赖库并编译这些库。(我们把代码所需要的库叫做 依赖(dependencies))。 查看cargo版本 我这里可以看到具体的版本好和日期 第一行

    2024年02月03日
    浏览(24)
  • ubuntu上安装rust和cargo

    第一种方法: 下面一句话就搞定。但特殊情况下(对rust版本有要求的时候)需要使用第2种方法 第2种方法: 不想用apt 运行后,会让你选择方式,选择1,安装。  How to Install Rust and Cargo on Ubuntu Other Linux

    2024年02月08日
    浏览(50)
  • Rust学习日记(一)Cargo的使用

    前言: 这是一个系列的学习笔记,会将笔者学习Rust语言的心得记录。 当然,这并非是流水账似的记录,而是结合实际程序项目的记录,如果你也对Rust感兴趣,那么我们可以一起交流探讨,使用Rust来构建程序。 注:本文中使用Rust都是在windows环境下,如果是macOS或者linux,其

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包