安装Rust
使用rustup
安装Rust
如你不打算使用以下方法安装或以下方法安装失败,请参考其他安装方法(全英)。
rustup
是一个管理Rust版本和相关工具的命令行工具,安装rustup
会默认安装rust及其工具集。
在Windows
上安装
安装C++生成工具(版本至低为2013,建议安装最新版本)或MinGW-w64(推荐下载离线版本,因为联网安装包有网络要求)。
在
Windows
上编译Rust程序需要Windows ABI,因此官方提供了两个选择:MSVC ABI或GNU ABI,但官方默认、推荐使用MSVC。注意在安装C++生成工具时必须勾选C++桌面开发。另外可酌情勾选.NET桌面开发、通用Windows平台开发(某些依赖项可能会需要,但我个人使用过程中并无此问题,如为求稳定,可全部勾选)。
下载
rustup-init.exe
(x32|x64)并运行安装。使用MSVC的ABI:运行后直接输入1+回车即可按照默认配置安装。
使用GNU的ABI:运行后输入2(Customize installation),将程序上面显示的default host triple值中的
msvc
改成gnu
键入回车即可修改成使用GNU,回到初始界面后键入1即可等待安装完成。
rustup
默认使用国外源,使用国内源可在PowerShell下执行以下命令(其他Shell类似),并在同一窗口下运行安装程序即可。1
2$ENV:RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static'
$ENV:RUSTUP_UPDATE_ROOT='https://mirrors.ustc.edu.cn/rust-static/rustup'
在WSL中安装
WSL命令行中运行命令curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
,按照提示步骤安装,网络问题可选解决方案同上。
在Linux/macOS(本人未测试)下安装
直接在终端中输入curl https://sh.rustup.rs -sSf | sh
,按照提示步骤安装,网络问题可选解决方案同上。
在macOS下使用brew安装(本人未测试)(备选方案)
命令行运行命令brew install rust
。
检验
安装结束后,在命令行中输入rustc --version
和cargo --version
看看是否能正常运行输出。
如果没有出现版本号,请尝试将~\.cargo\bin
添加到PATH
环境变量中或者重装。
你可能会注意到,版本后端有一段英文stable
,但上图显示的却是nightly
,这个涉及到Rust发布通道,稍后我再解释。
更新、卸载Rust和rustup
一般来说,下载下来的版本可能并不是最新的,使用更新命令即可。
更新:rustup update
,会一并更新所有已安装的工具链。
卸载:rustup self uninstall
,会一并卸载所有已安装的工具链。
Rust更新通道(可跳过)和Rust版本
详细解释可查看官方文档或者中文翻译。
Rust有三个更新通道:
- Nightly:该通道每天都会从git仓库中生成一个新版本,选用此通道能体验新的实验性功能(
船新的BUG),几乎所有的BUG都在此通道产生并被发现消除。 - Beta:每6周,该通道都会从Nightly通道选择最新的版本作为最新的beta版发布,nightly版中未经发现的bug将于此版本的更新间隔修复。
- Stable:当beta版即将发布新版本前,该版本将发布到Stable通道中。因此其更新周期也为6周。
多亏这样的过程,Stable通道中的每一个版本都有着良好的稳定性。Beta通道6周的更新周期使得开发人员有充足的时间修复bug,新版本也将更快发布。
鉴于频繁的更新频率,每隔2~3年,Rust团队会发布一个版本(
edition
,可以理解为大版本),从Rust诞生到现在(2021/9/26),Rust总共只有3个版本2015
、2018
和2021
。
Nightly通道支持许多Stable通道不支持的功能,比如使用unstable
特性。
切换默认通道的方法:rustup default nightly
、beta
、stable
。不同通道的工具链可共存,大版本间同样可共存。
更新指定通道的方法为:rustup update nightly
...
环境声明
在编写本教程时,使用的环境如下:
Windows 11 专业版 Insider Preview(此前我都使用win10,近期升了预览版,并无问题)
Rust 2021
stable:
rustc 1.55.0
nightly:
rustc 1.57.0
鉴于nightly每天一更,全书将主要使用stable,nightly将用于讲解如何使用新功能和变更。