本教程适用于以下操作系统版本

  • AlmaLinux 9
  • AlmaLinux 8

本页内容

  • 为何使用 Rust
  • 先决条件
  • 通过 AppStream 仓库安装 Rust
  • 通过 Rustup 安装 Rust 安装依赖 安装 Rust 和 Rustup 管理工具链
  • 创建第一个 Rust 项目
  • 结论
  • 安装依赖
  • 安装 Rust 和 Rustup
  • 管理工具链

Rust 是一种现代系统编程语言,于 2010 年首次发布。Rust 的开发旨在解决其他编程语言中的常见问题,例如内存安全、并发性和性能。Rust 现在甚至已被用于 Linux 内核。

为何使用 Rust

内存安全

Rust 通过编译期检查和严格的所有权规则来保证内存安全。这避免了空指针解引用、缓冲区溢出和数据溢出等常见的编程错误。

并发

Rust 对并发编程提供内置支持。它提供了称为“tasks”的轻量级线程,以及一个确保线程安全的强大类型系统。

性能

Rust 提供的抽象方式使得高级编程结构不会带来任何运行时开销。这让开发者更容易编写安全且快速的代码。

所有权模型

由于 Rust 内置的所有权模型,内存得到了高效管理。它对所有权、借用(borrowing)和生命周期(lifetime)实施严格规则,防止了 use-after-free 和 double-free 等常见错误。

Cargo

Rust 拥有一个名为 Cargo 的强大包管理器和构建系统。它让管理依赖、构建项目和运行测试变得轻松。

简洁语法

Rust 拥有受 C++ 影响但注重可读性和简洁性的清晰且富有表现力的语法。它提供模式匹配、闭包(closures)、泛型(generics)以及其他现代语言特性。

在性能、可靠性和安全性至关重要的场景中,Rust 表现出色,并被广泛用于开发操作系统(如 Linux)、嵌入式系统、设备驱动程序、网络服务、游戏引擎以及其他性能关键型软件。

在本指南中,我们将带你完成在 AlmaLinux 9 上安装 Rust 编程语言的过程。你将通过两种不同的方法安装 Rust,并学习 Cargo 包管理器用于创建和管理 Rust 项目的基本用法。

先决条件

在开始之前,请确保你具备以下条件:

  • 一台 AlmaLinux 9 机器 —— 服务器版或桌面版。
  • 一个具有 root/管理员权限的非 root 用户。

通过 AppStream 仓库安装 Rust

在 AlmaLinux 9 上,默认的 appstream 仓库提供了一个可以通过 DNF 轻松安装的 Rust 软件包。此外还有 Cargo 软件包,它是用于你的 Rust 项目的 Rust 包管理器和依赖管理工具。

本节将向你展示如何通过 appstream 仓库在 AlmaLinux 9 上安装 Rust 和 Cargo 包管理器。

首先,输入以下 dnf 命令来检查 AlmaLinux 仓库中可用的 Rust 详细信息。

sudo dnf info rust

在以下输出中,你可以看到 AlmaLinux appstream 仓库中提供的 Rust v1.66。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

现在,运行以下命令将 Rust 和 Cargo 包管理器安装到你的系统。在提示时输入 y 并按 ENTER。

sudo dnf install rust cargo

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

Rust 和 Cargo 安装完成后,运行以下命令来检查 Rust 和 Cargo 的二进制文件位置。

which rust
which cargo

然后,使用以下命令验证 Rust 和 Cargo 版本。

rustc --version
cargo --version

你将看到以下输出,确认 Rust 和 Cargo v1.66 已通过 appstream 仓库安装。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

通过 Rustup 安装 Rust

另一种安装 Rust 的方法是通过 rustup,它是用于 Rust 开发环境的工具链多路复用器(toolchain multiplexer)。它类似于 Ruby 的 rbenv、Node.js 的 nvm 或 Python 的 Pyenv。

你可以在系统级环境或单用户环境中安装 rustup。在下一节中,你将通过 rustup 进行系统级安装,这样任何用户都可以执行你的 Rust 安装。

安装依赖

在安装 rustup 之前,你必须为其安装软件包依赖。你必须将 EPEL 仓库添加到你的系统,然后安装一些开发工具,例如 gcc、make 和 cmake。

首先,运行以下 dnf 命令将 EPEL 仓库添加到你的系统。

sudo dnf install epel-release

输入 y 并按 ENTER 确认。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

然后,使用以下 dnf 命令安装一些软件包依赖。

sudo dnf install cmake gcc make wget tree -y

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

依赖安装完成后,继续进行 Rustup 的安装。

安装 Rust 和 Rustup

rustup 安装起来很容易。它提供了一个可以在任何 Linux 发行版上运行的安装脚本。

现在,你将安装 rustup,它包含 Rust 的稳定版和 Cargo 包管理器。你还将设置 RUSTUP_HOME 环境变量,并将 rustup 的二进制路径添加到系统 PATH。

运行以下命令下载 Rustup 安装程序,然后将 Rustup 安装到 /opt/rust 目录。

wget -qO - https://sh.rustup.rs | sudo RUSTUP_HOME=/opt/rust CARGO_HOME=/opt/rust sh -s -- --no-modify-path -y

Rustup 安装过程中的输出。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

Rustup 安装完成后,将显示如下输出信息“Rust is installed now. Great!”:

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

接下来,运行以下命令设置 /opt/rust,并将 /opt/rust/bin 目录添加到系统 PATH。

echo 'export RUSTUP_HOME=/opt/rust' | sudo tee -a /etc/profile.d/rust.sh
echo 'export PATH=$PATH:/opt/rust/bin' | sudo tee -a /etc/profile.d/rust.sh

重新加载 /etc/profile 以应用新的系统环境变量。

source /etc/profile

之后,使用以下命令验证 RUSTUP_HOME 和 PATH 环境变量。

echo $RUSTUP_HOME
echo $PATH

从输出中,你可以看到 RUSTUP_HOME 指向 /opt/rust 目录,并且 /opt/rust/bin 目录已添加到系统 PATH。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

现在运行以下命令检查 Rust 二进制文件的位置并验证 Rust 版本。

which rustc
rustc -V

然后,运行以下命令检查 Cargo 二进制文件的位置并验证 Cargo 版本。

which cargo
cargo -V

显示的输出应确认 Rust 和 Cargo 二进制文件位于 /opt/rust/bin 目录。并且已安装的 Rust 和 Cargo 版本为 v1.69。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

管理工具链

在 rustup 中,有一些类似 toolchain(工具链)和 channel(通道)的概念。channel 是 Rust 版本的来源,你可以从 stable、beta 和 nightly 等不同构建中进行选择。toolchain 是 Rust 编译器的单次安装,你可以在 rustup 环境中安装多个工具链。

在本节中,你将学习如何通过 rustup 命令管理 rustup 工具链。

首先,运行以下命令为 rustup 命令生成 bash 补全(bas completion)并加载新的 bash 补全。这将简化通过 rustup 进行的 Rust 管理。

rustup completions bash > /usr/share/bash-completion/completions/rustup
source /etc/profile.d/bash_completion.sh

现在输入 rustup 命令并按 TAB 键以获取 rustup 的可用选项列表。

rustup TAB

如果 rustup 的 bash 补全成功,你应该会得到 rustup 命令的可用选项输出。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

接下来,运行以下 rustup 命令来检查你的 Rust 和 rustup 安装信息。

rustup show

从以下输出中,你应该能获取 rustup 主目录 /opt/rust 的位置,并且系统上已安装 rustup 默认的 stable 通道。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

接下来,运行以下命令安装另一个 rustup 工具链版本。在此示例中,你将安装 rustup 的 nightly 版本。

rustup toolchain install nightly

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

rustup nightly 安装完成后,运行以下命令验证可用的 rustup 工具链列表。你应该会看到两个版本的 rustup 工具链:stable 和 nightly 版本。

rustup toolchain list

现在运行以下 rustup 命令切换到不同版本的工具链。在此示例中,你将切换到 rustup nightly。

rustup default nightly

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

现在使用以下命令验证 Rust 和 Cargo 的当前版本。你应该会看到系统当前使用的是 Rust 和 Cargo v1.71。

rustc -V
cargo -V

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

创建第一个 Rust 项目

在 Rust 编程语言和 Cargo 包管理器安装完成后,现在你将通过 Cargo 创建第一个 Rust 项目。

首先,使用以下命令登录到你的用户。

su - username

现在使用以下 cargo 命令创建一个新的 Rust 项目。在本演示中,你将创建一个名为 hello_rust 的新项目。

cargo new hello_rust

命令执行后,你应该会看到新目录 hello_rust 被创建。

进入 hello_rust 目录并运行以下 tree 命令以获取可用文件和目录的列表。

cd hellow_rust/
tree .

你应该会看到 COnfig.toml 文件,它存储了你的应用程序信息以及所有必需的依赖,还有包含 Rust 应用程序源代码的 src 目录。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

以下是 Config.toml 文件的类似内容。根据需要修改它,如果你的 Rust 应用程序有依赖,请将它们包含在 [dependencies] 部分中。

[package]
name = "hello_rust"
version = "0.1.1"
edition = "2021"
[dependencies]

接下来,使用你喜欢的编辑器打开 src/main.rs 文件,并将默认的“Hello World”消息修改为如下内容。

fn main() {
    println!("Hello World, welcome to Rust.");
}

完成后保存文件并退出编辑器。

现在运行以下 cargo 命令来编译并构建 Rust 项目。然后在项目编译后再次验证文件和目录列表。

cargo build
tree .

你应该会看到生成了一个名为 target 的新目录,编译后的应用程序就存储在其中。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

现在运行以下 cargo 命令来运行应用程序。你应该会看到诸如“Hello World, welcome to Rust”这样的输出。

cargo run

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

此外,你也可以像这样直接运行 Rust 应用程序的二进制文件。

./target/debug/hello_rust

你应该会得到相同的输出。

在 AlmaLinux 9 上安装 Rust 与 Cargo 包管理器

结论

做得好!你已按照所有步骤在 AlmaLinux 9 系统上安装了 Rust。你学习了通过 AlmaLinux appstream 仓库和 rustup 这两种安装 Rust 的方法。

除此之外,你还学习了如何在 rustup 工具链的多个版本之间切换,以及如何通过 Cargo(Rust 包管理器和依赖管理器)创建第一个 Rust 应用程序/项目。