# 简明快速配置 Rust 工具链
以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/dBzL9WZ8P1L1X9j_XkmNQg

你可能会为不同版本的工具链而烦恼,就算是 ruster 也一样。介绍一个非常好用的管理工具给大伙,就是使用 Rustup 安装和更新 Rust 工具链。安装 Rustup 之后,可以在 stable, beta,和 nightly 等版本的 Rust 编译器工具之间无缝切换。
写本文的时候,Rust 编程语言的使用已经越来越流行,受到大量编程人员和企业的尝试和偏好。Rust 受欢迎的原因之一是 Rust 提供的工具非常好用,对于开发人员来说,使用这些工具已经是一种享受。
Rustup 作为管理 Rust 工具的官方版本,它不仅可以用于安装 Rust 并保持更新,还可以让你在不同版本 Rust 编译器和工具之间无缝切换。
Rustup 到底有那么神奇吗?下面就让我来带你走一遍 rustup 以及一些常用的操作指令。
默认安装方法
如果你想在 Linux 上安装 Rust,可以使用包管理器。在 Ubuntu 上的包管理器 apt
$ sudo apt-get install rustc cargo
这样子安装的是 Rust 工具链的稳定版本,非常适合 Rust 初学者和想要尝试编译和运行简单的程序。其中,rustc 是 rust 的编译器,cargo 是 rust 的包管理器。
但是,Rust 是一种较新的编程语言,它变化很快,并且经常更新升级,会发布许多新功能和特新。这些功能和特性会被放在 Rust 工具链的 nightly 和更新版本中。
在不影响系统已安装的稳定版本情况下,如果又想尝试新功能,必然需要安装较新版本的工具链。不幸的是,大部分系统发行版的包管理器无法帮到做到这些。
那么怎么办?且往下看!
使用 rustup
为了安装 rustup,需要从官网下载脚本文件,使用常见的 curl 指令
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > sh.rustup.rs
在运行安装下载脚本 sh.rustup.rs 之前,可以选择把安装源改到国内其中一个镜像,方便加快速度。
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
接着启动下载安装 rust 的脚本 sh.rustup.rs,开始下载安装
$ ./sh.rustup.rs
info: downloading installer
...
脚本 sh.rustup.rs 会先下载必要的文件,所以稍等片刻,然后出现提示时选择选项 1:
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
> 1
安装后,直接输入查看工具链版本的命令,你会发现终端提示还是无法找到对应命令
$ rustc -V
-bash: /usr/bin/rustc: No such file or directory
$ cargo -V
-bash: /usr/bin/rustc: No such file or directory
这时,你需要重启命令终端,目的是重新载入环境变量和包含 cargo 的 bin 目录。
但是我比较懒,所以直接手动配置环境变量以包含 cargo 的 bin 目录
$ source $HOME/.cargo/env
这样就可以开始使用 rust 工具链了
$ rustc -V
rustc 1.72.0 (5680fa18f 2023-08-23)
$ cargo -V
cargo 1.72.0 (103a7ff2e 2023-08-15)
查看已安装和生效的版本
使用 rustup 据说可以管理多个版本的 rust 工具链,那么,当前哪一版的工具链是处于生效状态呢?
使用以下命令查看
$ rustup show
Default host: x86_64-unknown-linux-gnu
rustup home: /home/user/.rustup
stable-x86_64-unknown-linux-gnu (default)
rustc 1.72.0 (5680fa18f 2023-08-23)
切换不同版本
安装好 rustup 后可以根据需要进行更改 rust 目前生效的工具链。如果你当前使用的工具链是稳定版,并希望尝试 nightly 版本中提供的新引入的功能,可以轻松切换到 nightly 版本中
$ rustup default
$ rustup default nightly
对应的,切换不同版本之后,如果需要查看 Rust 编译器和包管理器的确切路径,可以
$ rustup which rustc
/home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc
$ rustup which cargo
/home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo
检查和更新
简单检查一下发布源是否又新的 Rust 工具链可用:
$ rustup check
当你收到消息有新的 Rust 的版本已发布,并且有一些不错的功能或者特性,怎么获取最新版本的 Rust?使用 update 子命令
$ rustup update
更多
上面简单介绍了一些命令足以满足日常使用,但是难免总有遗漏,rustup 还有很多命令可以挖掘,建议参考帮助部分了解更多详细信息
$ rustup --help
可能你会想知道是不是查找详细的指导信息都得在网上搜索?
告诉你一个好消息,所有 Rust 文档都已经被 rustup 安装在你的本地系统上了,并且是离线可用。你可以访问本地文档,其中包括书籍、标准库等:
$ rustup doc
$ rustup doc --book
$ rustup doc --std
$ rustup doc --cargo
当然,Rustup 在 GitHub 上也有一本完整的书,你可以将其用作参考。
Rust 正在快速发展中,是最近几年最令人兴奋的一门新兴编程语言。如果你对编程的发展演化感兴趣,欢迎关注我,一起学习交流!
# 简明快速配置 Rust 工具链的更多相关文章
- 虚拟机快速下载安装配置aarch64-linux-gnu-gcc工具链
方式一:软件仓库安装 此方法不用自己去配置交叉编译工具链 1.查看本地仓库有支持哪些版本哪些 输入命令: apt-cache search aarch64 2.下载安装 gcc-8-aarch64-l ...
- Buildroot构建指南——工具链
Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软件.一般大家默认工具链等于gcc或者arm-linux-gcc,但是实际上,gcc只是工具链的编译器部分,不是全部,制作一个工 ...
- Buildroot构建指南——工具链【转】
本文转载自:http://blog.csdn.net/zhou_chenz/article/details/52346134 Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软 ...
- arm-linux交叉编译工具链的制作(基于S3C2440)【转】
本文转载自:http://eric-gao.iteye.com/blog/2160622 制作arm-linux交叉编译工具链一般通过crosstool工具或者crosstool-NG,前者使用方便, ...
- 如何快速复制BAT级的DevOps工具链
1.流水线改变世界 1910年,福特汽车在引入流水线生产之后,Model-T 的组装时间缩短了8倍,从12.5小时降到了1.5小时,这就是流水线改变世界的神话,造就了汽车上的国家! 那流水线怎么改变软 ...
- GitLab + Jenkins + Harbor 工具链快速落地指南
目录 一.今天想干啥? 二.今天干点啥? 三.今天怎么干? 3.1.常规打法 3.2.不走寻常路 四.开干吧! 4.1.工具链部署 4.2.网络配置 4.3.验证工具链部署结果 4.3.1.GitLa ...
- 配置ESP8266 NONOS SDK时由于工具链版本差异引发的故障
前几天部署ESP8266_NONOS_SDK时遇到了一个看似奇怪的问题,描述如下: examples例程可以通过编译,但烧写到ESP8266模块后,程序无法正常运行,编译和烧写的相关配置均无误.在bo ...
- [技术博客] 软工-Ruby on Rails前端工具链的配置以及对Web应用结构设计的一点思考
一.相关工具链简介 HAML HAML是专门面向Ruby on Rails模版语法设计的一门标记语言,其结合RoR的views部分模版语法的特点,对原来的*.html.erb(嵌入Ruby代码的HTM ...
- django 实用工具dj-database-url 快速配置数据库
dj-database-url Github>>> django快速配置多种数据库 $ pip install dj-database-url Configure your data ...
- xmake v2.3.4 发布, 更加完善的工具链支持
为了让xmake更好得支持交叉编译,这个版本我重构了整个工具链,使得工具链的切换更加的方便快捷,并且现在用户可以很方便地在xmake.lua中扩展自己的工具链. 关于平台的支持上,我们新增了对*BSD ...
随机推荐
- cmd+ssh配置远程服务器Anaconda3_2023+pytorch
一.上传Anaconda3到远程服务器 注意:如果要将这个东西安装在anaconda3文件夹里的话,当前这个目录里不能有这个文件夹.(安的时候会自动创建) 二.安装Anaconda3 1. win+r ...
- 5个 Istio 访问外部服务流量控制最常用的例子,你知道几个?
5 个 Istio 访问外部服务的流量控制常用例子,强烈建议收藏起来,以备不时之需. 环境准备 部署 sleep 服务,作为发送请求的测试源: kubectl apply -f samples/sle ...
- 亮点预告!金蝶云·苍穹技术开放日第五期AI专场邀你围观!
「金蝶云·苍穹技术开放日」系列活动由金蝶云苍穹平台生态部主办,迄今已成功举办三期,旨在为开发者提供技术分享和行业交流的平台. 每一期我们都会聚焦一个技术主题,邀请本领域权威技术专家和外部嘉宾分享技 ...
- CF1810H Last Number
大难题,但是非常的有意思.思路来自 \(\color{black}\text{艾}\color{red}\text{利克斯·伟}\).补充了一点小细节. 题意 对于一个 可重 集合 \(S\),初始为 ...
- 编译器设计与实现:Java编译器并发编程模型实现多核CPU和Web应用程序
目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...
- 1 大数据实战系列-spark+hadoop集成环境搭建
1 准备环境 192.168.0.251 shulaibao1 192.168.0.252 shulaibao2 hadoop-2.8.0-bin spark-2.1.1-bin-hadoop2.7 ...
- prometheus Histogram 统计原理
大家好,我是蓝胖子,书接上文,我在prometheus描点原理那一篇文章里,留了一个思考题: 我们通常会用到histogram_quantile去计算服务接口时间的耗时情况. histogram_qu ...
- 《Effective C++ 改善程序与设计的55个具体做法》读书笔记
1 .让自己习惯C++ 条款01 视C++为一个语言联邦 C Object-Oriented C++ Template C++ STL C++高效编程守则视情况而变化,取决于你使用C++的哪一部分. ...
- C语言。格式化符号
%s 输出字符串 %d 输出整形数字 %f 输出浮点数数字 %c 输出字符 %x 输出16进制 %04d 输出长度固定的整形数字(0001,0002,....)
- go web学习(四)
跟着b站https://space.bilibili.com/361469957 杨旭老师学习做的笔记 中间件 什么是中间件 请求----> 中间件 ----> Handler 响应 &l ...