热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Rust使用国内Crates源、rustup源|字节跳动新的Rust镜像源以及安装rust

文章目录一、背景二、字节跳动新的Rust镜像源以及安装rustcrates.ioMirrorRustupMirror安装Rust三、rust使用其他国内镜像以及安装rust使用国内

文章目录

    • 一、背景
    • 二、字节跳动新的 Rust 镜像源以及安装rust
      • crates.io Mirror
      • Rustup Mirror
      • 安装Rust
    • 三、rust 使用其他国内镜像以及安装rust
      • 使用国内源 (ustc) 之后依然无法下载最新包


一、背景

Rust社区公开的第三方包都集中在crates.io网站上面,他们的文档被自动发布到doc.rs网站上。
rustup是一个管理 Rust 版本和相关工具的命令行工具。rustup 是一个命令行应用,能够下载并在不同版本的 Rust 工具链中进行切换

Rust开发时有时使用官方的源太慢,可以考虑更换使用国内的源。

二、字节跳动新的 Rust 镜像源以及安装rust

字节跳动搞的,希望能帮助建设国内的 rust 生态,感兴趣的话可以试用,无任何限速(实际上是 1000Gbps)。

地址:https://rsproxy.cn/

crates.io Mirror

vi ~/.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

Rustup Mirror

~/.zshrc or ~/.bashrc:

vi ~/.bashrc

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

安装Rust

完成上面2步,然后执行:

# export the env above first
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh

三、rust 使用其他国内镜像以及安装rust

参考: http://mirrors.ustc.edu.cn/help/crates.io-index.html

由于rustup官方服务器在国外
如果直接按照rust官网的安装方式安装非常容易失败,即使不失败也非常非常慢

我们需要指定 RUSTUP_DIST_SERVER(默认指向 https://static.rust-lang.org)和 RUSTUP_UPDATE_ROOT (默认指向https://static.rust-lang.org/rustup),这两个网站均在中国大陆境外,因此在中国大陆访问会很慢,需要配置成境内的镜像。

方式一:
设置环境变量 RUSTUP_DIST_SERVER(用于更新 toolchain)
以及 RUSTUP_UPDATE_ROOT(用于更新 rustup)

vi /etc/profile

# 清华大学
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup# 中国科学技术大学
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup# 上海交通大学
RUSTUP_DIST_SERVER=https://mirrors.sjtug.sjtu.edu.cn/rust-static/

source /etc/profile

使用国内镜像的方法

  1. 首先修改一下上面的命令,将安装脚本导出

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rust.sh

  1. 打开 rust.sh 脚本

  2. 修改环境变量
    export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
    将 RUSTUP_UPDATE_ROOT 修改为
    RUSTUP_UPDATE_ROOT=“https://mirrors.ustc.edu.cn/rust-static/rustup”

  3. 执行脚本

bash rust.sh

  1. 测试是否安装成功

rustc --version

使用国内源 (ustc) 之后依然无法下载最新包

中国科大的镜像不稳定,有单个 ip 的并发限制, 官方说添加 CARGO_HTTP_MULTIPLEXING=false 参考链接: mirrors.ustc.edu.cn/help/crates.io-…
Rust dependencies依赖管理crates.io原理梳理
原文链接:https://blog.csdn.net/mutourend/article/details/106415130

这个是说在使用 nightly 版本的时候可能会报错,我直接用的是官方的稳定版… 不过似乎半夜是可以下载的,可能是和国内用户访问的频率流量有关

rm /root/.cargo/config -f #删掉本地 中科大配置,使用默认官网下载

使用 nightly 版本时,Crates 源可能会出现 Couldn’t resolve host name (Could not resolve host: crates) 错误(见 https://github.com/ustclug/discussions/issues/294)。一个临时的解决方法是在运行 cargo 的时候加入环境变量 CARGO_HTTP_MULTIPLEXING=false。

还因各种原因,即使切换为国内镜像源,仍然无法从crates.io中下载各依赖包的情况。

经验证,无法下载是因为局域网内https://crates-io.proxy.ustclug.org/api/v1/crates被屏蔽无法连接,而https://crates.io/api/v1/crates 可连接成功。

最简单的方法就是切换为默认源,哪怕慢点。


推荐阅读
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • 本文深入探讨了企业级开发框架NHibernate和Spring.NET的关键特性之一——面向方面编程(AOP)。文章不仅介绍了AOP的基本概念及其如何增强面向对象编程(OOP),还详细说明了Spring.NET中AOP的具体应用,包括事务管理和自定义方面的实现。 ... [详细]
  • 本文探讨了如何利用自定义URI方案和注册表编辑,在Windows操作系统中实现从Web浏览器启动本地应用程序的方法,同时强调了这一过程中的安全考虑。 ... [详细]
  • 深入理解Play Framework 1.2.7中的缓存机制
    本文探讨了Play Framework 1.2.7版本中提供的缓存解决方案,包括Ehcache和Memcached的集成与使用。文章详细介绍了缓存相关的类及其功能,以及如何通过配置选择合适的缓存实现。 ... [详细]
  • 应用程序配置详解
    本文介绍了配置文件的关键特性及其在不同场景下的应用,重点探讨了Machine.Config和Web.Config两种主要配置文件的用途和配置方法。文章还详细解释了如何利用XML格式的配置文件来调整应用程序的行为,包括自定义配置、错误处理、身份验证和授权设置。 ... [详细]
  • mysql 分库分表策略_【数据库】分库分表策略
    关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多, ... [详细]
  • 本文详细介绍了如何手动编写兼容IE的Ajax函数,以及探讨了跨域请求的实现方法和原理,包括JSONP和服务器端设置HTTP头部等技术。 ... [详细]
  • Java WebSocket 实时通信服务端实现
    本文介绍了一个基于Java的WebSocket实时通信服务端代码示例,包括客户端连接管理、消息接收与分发等功能。 ... [详细]
  • 本文深入探讨了Redis的快照持久化机制,包括其工作原理、配置方法以及如何手动触发快照。通过这种方式,Redis能够确保在服务器重启后数据的安全性和完整性。 ... [详细]
  • ###########性能监控脚本###########################!binbash#监控cpu系统负载IPifconfigeth0|grepinetaddr ... [详细]
  • databasesync适配openGauss使用指导书
    一、database-sync简介database-sync作为一种开源辅助工具,用于数据库之间的表同步,更确切的说法是复制,可以从一个数据库复制表到另一个数据库该工具支持的功能如 ... [详细]
  • 本文详细介绍了RPM包构建过程中Spec文件的结构和各部分的作用,包括包描述、准备阶段、构建过程、安装步骤、清理操作以及文件列表等关键环节。同时,提供了关于RPM宏命令、打包目录结构及常见标签的深入解析。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • SonarQube配置与使用指南
    本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ... [详细]
  • 每位开发者都应该拥有一个展示自我技能与分享知识的空间——个人技术博客。本文将指导你如何使用静态网站生成器Hexo结合GitHub Pages搭建这样一个平台。 ... [详细]
author-avatar
php小学生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有