0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用rustup来管理所有和Rust相关的工具链

jf_wN0SrCdH 来源:浮之静 作者:lencx 2022-11-23 09:45 次阅读

安装 Rust

在前端开发中,经常会使用 nvm[2](或 nvm-windows[3])来管理系统上的 Node.js 版本。而在 Rust 中则是使用 rustup[4] 来管理所有和 Rust 相关的工具链,而且它们具有很多相似性:

cargo[5] - rust 版的 npm[6],Rust 的包管理器。

clippy[7] - rust 版的 eslint[8],检查包以捕获常见错误并改进你的 Rust 代码。

rustfmt[9] - rust 版的 prettier[10],格式化当前 crate 的所有 bin 和 lib 文件。

crates.io[11] - rust 版 npm 包管理网站[12]。

macOS、Linux、以及类 Unix 系统安装(如果是 Windows,请参考其他平台安装[13]):

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 升级
$ rustup update

# 卸载
$ rustup self uninstall

版本检查

使用 --version 会看到已发布的最新稳定版本的版本号、提交哈希和提交日期,格式如下:

$ rustc --version
rustc 1.65.0 (897e37553 2022-11-02)

$ cargo --version
cargo 1.65.0 (4bc8f24d3 2022-10-20)

版本选择

# 安装 nightly (stable | beta | nightly |  | )
$ rustup toolchain install nightly
# 查看 Rust 工具链(toolchains, Rust 和其相关组件)
$ rustup toolchain list
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin (default)
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin
# 设置默认为 nightly(全局)
$ rustup default nightly
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin (default)
# 覆盖为 nightly(当前项目)
$ cd ~/projects/needs-nightly
$ rustup override set nightly
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin (default)
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin (override)

# 移除覆盖(当前项目)
$ rustup override unset
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin (default)
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin

作为一种编程语言,Rust 既关心代码的稳定性(构建坚如磐石应用的基础),也希望拥抱变化(试验新的功能)。所以 Rust 遵循软件发布序列模型,该模型已被 Cisco IOS 和其他软件项目使用。Rust 有三个发布渠道(以 Rust 1.5 为例):

Nightly - 每天发布

Beta - 每周六发布

Stable - 稳定版,每六周发布一次

nightly: * - - * - - * - - * - - * - - * - * - *
                     |                         |
beta:                * - - - - - - - - *       *
                                       |
stable:                                *

Rust 2-3 年会发布一次大版本:每个版本会结合已经落地的功能,提供一个清晰的带有完整更新文档和工具的功能包。新版本会作为常规的六周发布过程的一部分发布。目前 Rust 已经发布了三个大版本(Rust 2015、2018、2021),了解更多:

What are Editions?[14]

How Rust is Made and “Nightly Rust”[15]

安装扩展

Cargo 插件

cargo edit[16] - 该工具扩展了 Cargo 以允许你通过从命令行修改 Cargo.toml 文件来添加、删除和升级依赖项。

cargo-watch[17] - 是一种用于监视基于 Cargo 的项目并在文件更改时运行命令的工具。它专注于 Rust 开发体验,旨在足够灵活以适应大多数情况,而不会变得复杂。

cargo-deny[18] - 用于整理你的依赖项。

cargo-expand[19] - 显示宏扩展结果的子命令。

cargo-fuzz[20] - 用于模糊测试的命令行助手。

cargo-generate[21] - 是一个开发人员工具,通过利用预先存在的 git 存储库作为模板,帮助你快速启动和运行新的 Rust 项目。

cargo-chef[22] - 使用 Docker 层缓存加速 Rust Docker 构建的 cargo 子命令。

cargo-release[23] - 关于释放 rust crate 的所有内容。

cargo-audit[24] - 审核你项目的依赖关系,以查找具有报告给 RustSec Advisory Database[25] 的安全漏洞的板条箱。

rustfix[26] - 自动应用 rustc 提出的建议。

nextest[27] - Rust 的下一代测试运行器。

tarpaulin[28] - Rust 项目的代码覆盖工具。

浏览器插件

Rust Search Extension[29] - 直接在浏览器地址栏搜索文档、crates、内置属性、官方文档、错误代码等。输入关键字 rs 然后按空格键开始,就这么简单!

VS Code 插件

rust-analyzer[30] - 插件提供了对 Rust 编程语言的支持。包含代码提示,类型定义,代码跳转等等(注意:关于 rust 语法提示的插件只需要这一个就够了)。

crates[31] - 是 crates.io 依赖项的插件。旨在帮助开发人员在使用 Cargo.toml 时管理依赖项,鼠标悬停 crate 名称可以显示可用版本列表。

CodeLLDB[32] - 由 LLDB 提供支持的本机调试器。调试 C++、Rust 和其他编译语言。

Even Better TOML[33] - 功能齐全的 TOML 支持,如句法高亮,验证,数组,对象折叠,JSON Schema[34] 等。

国内镜像

国内网络环境常常会导致依赖下载过慢或失败。所以和 npm 国内镜像类似,Rust 也支持镜像地址配置,常用的镜像源有:

清华大学开源软件镜像站[35] - 清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 团队负责维护。

中国科学技术大学开源软件镜像[36] - 是 Debian, Ubuntu, Fedora, Archlinux, CentOS 等多个发行版的官方源。目前是中国大陆高校访问量最大,收录最全的开源软件镜像。

上海交通大学 Linux 用户组 软件源镜像服务[37]

RsProxy & Bytedance[38]

配置文件

$HOME/.cargo/config

# 官方
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = "sjtu"

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

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 如果所处环境不支持 git 协议,可以修改为:
# registry = "https://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33138
  • 调试器
    +关注

    关注

    1

    文章

    288

    浏览量

    23410
  • BIN文件
    +关注

    关注

    0

    文章

    25

    浏览量

    8172
  • Rust
    +关注

    关注

    1

    文章

    223

    浏览量

    6387

原文标题:Rust 在前端 - 环境配置

文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【MYD-Y6ULX试用体验】建立开发环境

    本帖最后由 sandman78 于 2018-3-27 16:54 编辑 这里尝试采用RUST语言编写可在开发板上运行的程序,Rust是一种系统编程语言。它有着惊人的运行速度,能够防止段错误
    发表于 03-27 16:46

    什么是交叉编译工具

    ,就不得不了解交叉编译的相关问题。本文章中记录了一下嵌入式linux所使用的交叉编译工具相关基础说明,帮助回顾一些基础知识。一、什么是交叉编译
    发表于 11-04 07:05

    RUST在嵌入式开发中的应用是什么

    的文档、有用的错误消息、友好编译器、一流的工具,只是Rust的几个好处。它带有一个集成的包管理器和构建工具,支持自动完成和类型检查的智能多编辑器,一个自动格式化程序,等等。为什么在嵌入
    发表于 12-24 08:34

    RISC-V工具简介

    的开发工具是架构的基础设施,所有的软件操作都依赖于工具。没有工具
    发表于 03-09 06:32

    如何在STM32 (Cortex M3)和GD32(RISC-V)上用Rust开发

    安装 Rust 的时候暂且跳过 Visual Studio 也是完全没有问题的 ;)如果安装好 Rust 的开发环境,重启一下控制台,应当能运行 rustup工具
    发表于 06-21 10:38

    【沁恒微CH32V307评估板试用体验】探索Rust编程语言的嵌入式开发——基于CH32V307【1】

    ,文档完善、编译器提示有帮助,能节省软件开发所需的时间。它能应用在多个平台和指令集中,这包括裸机平台;处理核、操作系统厂家还可以提供自己的编译目标,无需厂家自己重新开发、提供工具。本着学习至上的精神
    发表于 07-18 00:37

    使用cygwin编译了riscv的工具,切换工具后报错如何解决?

    我使用cygwin编译了riscv的工具,然后将芯IDE的工具切换为我编译出来的工具
    发表于 08-12 07:51

    大厂对Rust的态度,C++之父回应

    不少开发者许多开发者都对 Rust 的过度宣传感到反感,并表示不同的工具适合不同的问题,不要再过度宣传某一种编程语言。Rust 很好,但它不是所有问题的解决方案。
    的头像 发表于 09-22 11:25 1087次阅读

    以调试Rust的方式来学习Rust

    在我上一篇 关于 Rustup 的文章 中,我向你们展示了如何安装 Rust 工具链。但是,如果不能上手操作一下 Rust 的话下载工具链又
    的头像 发表于 01-03 14:56 661次阅读

    Google为Chromium引入Rust

    Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。
    的头像 发表于 01-16 09:30 415次阅读

    一个用Rust开发的压测工具rsb

    一个用 Rust 开发的压测工具,项目地址:rsb,给个 star 鼓励下。
    的头像 发表于 03-21 09:32 567次阅读

    Rust 1.68.1发布修复了回归问题

    rustup安装了Rust,可以使用以下命令更新到1.68.1版本: rustup update stable 如何在2023年3月加速 Rust 编译器 在“如何加速
    的头像 发表于 03-27 14:43 286次阅读

    Rustup出发看Rust编译生态

    Rustup出发看Rust编译生态 1. Rust和LLVM的关系是怎样的? 2. Rustup中targets是什么,为什么可以安装多个? 3.
    的头像 发表于 01-02 11:00 240次阅读

    一次Rust重写基础软件的实践

    受到2022年“谷歌使用Rust重写Android系统且所有Rust代码的内存安全漏洞为零” [1] 的启发,最近笔者怀着浓厚的兴趣也顺应Rust 的潮流,尝试着将一款C语言开发的基础
    的头像 发表于 01-25 11:21 273次阅读

    [鸿蒙]OpenHarmony4.0的Rust开发

    背景 Rust 是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。Rust 官方也使用 Cargo 工具来专门为
    的头像 发表于 02-26 17:28 310次阅读
    [鸿蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>开发