Rust 工具之 rustup

本贴最后更新于 1461 天前,其中的信息可能已经事过景迁

安装

rustup 是 Rust 的安装和管理工具,并且官网推荐使用 rustup 安装 Rust

在不同操作系统的安装方式:

  • 在 Unix 系统,使用 curl https://sh.rustup.rs -sSf | sh 命令,该命令会下载并运行rustup-init.sh
  • 在 Windows 系统,下载并运行 rustup-init.exe32-bit64-bit)。

另外,在 Windows 系统上有两种 ABI 可供选择:

选择使用哪种 ABI 取决于要使用哪种 C/C++ 库,若要生成在 Windows 上运行的程序,则需要提前安装 Visual Studio (Visual Studio 2013 或更高版本)或者安装 Visual C++ Build Tools

相关概念

rustup 将 rustccargo 等工具安装在 Cargo 的 bin 目录(Unix 系统在 $HOME/.cargo/bin,Windows 系统在 %USERPROFILE%\.cargo\bin),但这些工具只是 Rust 工具链中组件的代理,真正工作的是工具链中的组件。通过 rustup 的命令可以指定使用不同版本的工具链。

与 rustup 相关的概念:

  • channel —— Rust 发布在三个不同的"channel"上:stable,beta 和 nightly,其实就是三种不同的版本。
  • toolchain —— 一套 Rust 组件,包括编译器及其相关工具,并且包含 channel,版本及支持的平台信息。
  • target —— 指编译的目标平台,即:编译后的程序在哪种操作系统上运行。
  • component —— toolchain 是由 component 组成的。
  • profile —— 为了方便对 component 进行管理,使用 profile 定义一组 component。

Channels

Rust 发布在三个不同的"channel"上:

  • stable 版本 —— Rust 的稳定版本,每 6 周发布一次。
  • beta 版本 —— Rust 的公开测试版本,将是下一个 stable 版本。
  • nightly 版本 —— 每天更新,包含以一些实验性的新特性。

通过 rustup 相关命令可以选择使用不同版本的 Rust,默认安装的是 stable 版本。

Toolchains

工具链的标准命名格式:

<channel>[-<date>][-<host>]

<channel>       = stable|beta|nightly|<version>
<date>          = YYYY-MM-DD
<host>          = <target-triple>

工具链默认被安装在 RUSTUP_HOME (Unix 系统:~/.rustup ,Windows 系统:%USERPROFILE%/.rustup)目录下。

Components

工具链由若干组件构成,通过 rustup component list 命令可以查看所有可用和已经安装的组件。

rustup 默认安装的组件:

  • rustc — Rust 编译器。
  • rust-std — Rust 标准库。
  • cargo — 包管理和构建工具,类似于 Java 的 Maven 和 Gradle。
  • rust-docs — Rust 文档。
  • rustfmt — 用来格式化 Rust 源代码。
  • clippy — Rust 的代码检查工具。

Profiles

不同的 profile 包含不同的组件,安装 rustup 时有三种 profile 可选:

Profile components
minimal rustc, rust-std, cargo
default rustc, rust-std, cargo, rust-docs, rustfmt, clippy
complete all

可以使用 rustup set profile 命令修改 profile,比如:rustup set profile minimal

相关资料

Install Rust
The rustup book

  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...