Rust 开发环境安装与 crates.io 国内源配置(Windows / macOS / Linux 全流程)

Rust 这几年在系统编程、WebAssembly、区块链、后端服务领域越来越火,很多开发者都在尝试用它做一些新项目。
但是国内安装 Rust 开发环境时,经常遇到 安装慢、依赖拉不下来、crates.io 超时 等问题。本文结合个人踩坑经验,整理了一份 跨平台(Windows / macOS / Linux)全流程安装与镜像配置指南,希望能帮到后来人。


一、安装方式对比

Rust 的官方推荐安装方式是通过 rustup,它不仅能帮你安装编译器 rustc,还可以管理多个版本、安装 cargo 包管理工具。

常见安装路径:

  • 官方 rustup-init
    跨平台支持最好,但国内下载速度比较慢。

  • 国内镜像站
    比如清华、中科大等高校镜像源,下载速度更快。

  • 包管理器
    macOS 用户可以用 brew,Linux 可以用 apt/yum/dnf,Windows 可以用 scoop/choco,但更新往往不如 rustup 及时。

建议新手直接用 rustup,方便切换版本和管理工具链。


二、Windows 安装流程

  1. 下载安装器

    # 官方方式(可能很慢)
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init.exe
    .\rustup-init.exe# 推荐使用清华镜像加速
    set RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
    set RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
    

    然后运行 rustup-init.exe,按提示安装。

  2. 配置环境变量
    安装后,Rust 工具链默认会放在:

    C:\Users\<用户名>\.cargo\bin
    

    确保这个路径已经加入到 PATH

  3. 验证安装

    rustc --version
    cargo --version
    

三、macOS 安装流程

  1. 使用 Homebrew 安装依赖

    brew install rustup-init
    rustup-init
    
  2. 配置国内镜像(推荐在 .zshrc.bashrc 中写入):

    export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
    export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
    
  3. 初始化环境

    source $HOME/.cargo/env
    rustc --version
    cargo --version
    

四、Linux 安装流程

Linux 用户建议直接用 rustup:

  1. 下载安装脚本

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  2. 配置国内镜像(推荐写入 ~/.bashrc~/.zshrc):

    export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
    export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
    
  3. 加载环境变量并验证

    source $HOME/.cargo/env
    rustc --version
    cargo --version
    

五、配置 crates.io 国内源

Rust 的依赖管理通过 cargo 完成,默认从 crates.io 下载。但国内访问经常超时,需要配置镜像源。

  1. 全局配置
    编辑 $HOME/.cargo/config.toml(没有就新建):

    [source.crates-io]
    replace-with = 'ustc'[source.ustc]
    registry = "https://mirrors.ustc.edu.cn/crates.io-index"[net]
    git-fetch-with-cli = true  # 避免部分环境下 libgit2 超时
    

    这样所有项目都会走 USTC 镜像。

  2. 单项目配置
    如果只想在某个项目用镜像,可以在项目根目录新建 .cargo/config.toml 文件,写入相同内容。


六、常见问题与避坑指南

  1. cargo build 卡死在下载依赖
    → 确认 .cargo/config.toml 已正确配置镜像,尤其是 [source.crates-io] replace-with

  2. Windows PowerShell 环境变量不生效
    → 需要在系统级环境变量里写入,重启 PowerShell。

  3. 不同项目需要不同版本 Rust
    → 用 rustup override set stablerustup override set nightly 来指定项目使用的工具链。

  4. 升级慢或失败
    → 换成中科大或清华镜像,更新时加 RUSTUP_DIST_SERVER 环境变量。


Rust 的安装与环境配置本身不复杂,真正的难点在于 国内网络环境 导致下载缓慢或失败。
建议:

  • 安装器 用 rustup,方便版本管理;

  • 镜像源 配置清华/中科大镜像,加速 crates 下载;

  • 跨平台 建议写好 ~/.cargo/config.toml,不管在哪台机器都能统一使用。

这样一套配置下来,基本可以保证在 Windows / macOS / Linux 下都有顺畅的开发体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98818.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx SSL/TLS 配置

Nginx SSL/TLS 配置指南&#xff1a;从入门到安全强化前言一、环境准备&#xff1a;Nginx安装配置1.1. **EPEL仓库配置**&#xff1a;1.2. **Nginx安装**&#xff1a;1.3. **服务启停管理**&#xff1a;1.4. **服务状态验证**&#xff1a;二、SSL/TLS证书获取方案方案A&#xf…

Java ReentrantLock和synchronized的相同点与区别

1. 核心概念与定位synchronized&#xff1a;Java 内置的关键字&#xff0c;属于 JVM 层面的隐式锁。通过在方法或代码块上声明&#xff0c;自动实现锁的获取与释放&#xff0c;无需手动操作。设计目标是提供简单易用的基础同步能力&#xff0c;适合大多数常规同步场景。Reentra…

【npm】npm 包更新工具 npm-check-updates (ncu)

npm 包太多了&#xff0c;一个项目有那么多依赖包&#xff0c;它们的升级管理需要一个工具&#xff1a;npm-check-updates&#xff1a; 安装&#xff1a; npm install -g npm-check-updates安装之后&#xff0c;就可以使用它的命令&#xff1a;ncu 查看哪些包可以升级&#xff…

go资深之路笔记(一) Context

一、 Context 的正确使用与底层原理 1.结构体 type Context interface {// Deadline 返回此 Context 被取消的时间点。// 如果未设置截止时间&#xff0c;ok 为 false。Deadline() (deadline time.Time, ok bool)// Done 返回一个 channel。当 Context 被取消或超时后&#xff…

VS2022 + Qt5.9 中文乱码/项目设置utf-8编码

&#x1f6e0;️ 解决QT5.9 VS2022中文乱码的全面方案 &#x1f4c1; 1. 检查文件编码与编译器设置 确保源文件是 带BOM的UTF-8 编码对MSVC编译器很重要。VS2022默认可能使用本地编码&#xff08;如GB2312&#xff09;解析源文件&#xff0c;即使文件以UTF-8保存。 查看和设置…

数据库--MySQL数据管理

数据库–MySQL数据管理 文章目录数据库--MySQL数据管理1.外键管理2.数据库数据管理3.DML语言3.1添加数据3.2修改数据3.3删除数据4.练习1.外键管理 外键概念 如果公共关键字在一个关系中是主关键字&#xff0c;那么这个公共关键字被称为另一个关系的外键。由此可见&#xff0c;…

【C++练习】13.C++输出九九乘法表的方法详解

目录 C++输出九九乘法表的方法详解 方法1:双重for循环(最基础) 思考: 代码分析: 特点: 方法2:使用while循环 思考: 代码分析: 特点: 方法3:使用递归实现 思考: 代码分析: 特点: 方法4:格式化输出(对齐美观) 思考: 代码分析: 特点: 方法5:使用函数封装 思考…

MVC及其衍生

MVC 把软件分成模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;、控制器&#xff08;Controller&#xff09;三个基本部分。 事实上对应着 Controller——输入 用户交互&#xff0c;将输入处理成Controller能处理的形式 Model——处理 描述状态、逻辑规律…

微硕WINSOK MOS管WSF3089,赋能汽车转向系统安全升级

随着汽车电子化程度不断提高&#xff0c;转向系统对高效功率器件的需求日益增长。微硕WINSOK推出的N沟道Trench MOS管WSF3089&#xff0c;以30 V/72 A大电流、4.5 mΩ超低导通电阻和TO-252-2L紧凑封装&#xff0c;为EPS&#xff08;电动助力转向&#xff09;电机驱动、电源管理…

淘宝拍立淘接口的接入与应用||item_search_img-按图搜索淘宝商品(拍立淘)

淘宝拍立淘接口的接入与应用如下&#xff1a;接入流程注册与认证&#xff1a;开发者账号注册&#xff1a;访问淘宝开放平台&#xff0c;进行开发者账号注册。创建应用&#xff1a;在控制台创建新应用&#xff0c;获取 App Key 和 App Secret&#xff0c;这是接口调用的凭证。申…

Python学习-day8 元组tuple

元组&#xff08;Tuple&#xff09;是Python中一种不可变的序列类型&#xff0c;用于存储多个有序元素。与列表&#xff08;List&#xff09;类似&#xff0c;但元组一旦创建后不能修改&#xff08;不可添加、删除或修改元素&#xff09;&#xff0c;这使得它在安全性、性能优化…

大数据毕业设计选题推荐-基于大数据的国家医用消耗选品采集数据可视化分析系统-Hadoop-Spark-数据可视化-BigData

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

二次学习C语言补充2

文章目录表栈、队列、二叉树一、二叉树二、表栈三、队列链表一、单向链表二、循环链表、双向链表和双向循环链表预处理一、预处理二、宏定义文件文件操作补充本篇文章是对二次学习C语言12——文件操作 二次学习C语言14——预处理及模块化 二次学习C语言15——链表 二次学习C语言…

2.9Vue创建项目(组件)的补充

1.再创建和引入vue的选择2.VsCode插件 安装Vue自己搜索最新的3.style自己的作用域在一个组件中引入另一个文件的子组件&#xff0c;给当前组件设置样式&#xff0c;那么子组件的样式也会改变的。为了解决这个问题 我们在自己的style中设置一个属性4.另一种创建vue 的方式(主流…

算法高频题

刷题&#xff1a;LeetCode&#xff08;Top 100-150题&#xff0c;至少刷两遍&#xff09;。重点&#xff1a;链表、树、二分查找、动态规划、回溯、栈/队列。 每一个题型&#xff0c;前10个高频题 算法思考框架参考&#xff1a;算法题思维框架-CSDN博客 高频顺序参考网站&…

服务器安装 LDOPE(MODIS 数据处理工具)

目录下载方式1-&#xff08;简单快捷&#xff09;根据WRF-VPRM 需要打补丁下载方式2&#xff1a;&#xff08;手动安装依赖&#xff09;一、安装所需依赖库&#xff08;4 个主库 2 个基础库&#xff09;另- HDF-EOS 手动编译二、解压并安装 LDOPE参考下载方式1-&#xff08;简…

克隆代币 + 捆绑开盘:多链环境下的低成本发币玩法

在加密世界&#xff0c;发币已经不再是“少数开发者的专利”。随着工具的普及&#xff0c;任何人都可以快速发行一个在加密世界&#xff0c;发币已经不再是“少数开发者的专利”。随着工具的普及&#xff0c;任何人都可以快速发行一个代币。但问题是&#xff1a;如何在保证低成…

数据结构中的 二叉树

1.前言 在 Java 中&#xff0c;树&#xff08;Tree&#xff09;是一种非线性数据结构&#xff0c;由节点&#xff08;Node&#xff09;组成&#xff0c;常见的线性表则是我们之前学过的顺序表、链表、栈、队列等等。每个节点包含数据和指向子节点的引用。树的常见实现方式包括二…

IntelliJ IDEA 启动项目时配置端口指南

&#x1f31f; 一、为什么需要手动设置启动端口&#xff1f; 默认情况下&#xff0c;Spring Boot 应用会使用 8080 端口启动。但在以下场景中&#xff0c;我们必须自定义端口&#xff1a; 多个微服务同时运行&#xff0c;需避免端口冲突&#xff1b;团队协作开发&#xff0c;统…

spark sql之from_json函数

目录前言函数语法参数说明返回值案例案例1案例2前言 在Spark SQL中&#xff0c;from_json函数用于解析包含JSON字符串的列&#xff0c;并将其转换为Spark SQL的结构化类型&#xff08;如struct、map或array&#xff09; 函数语法 from_json(jsonStr, schema [, options])参数…