Rust 安装完全指南:从入门到精通 rustup
欢迎来到 Rust 的世界!Rust 是一种注重安全、性能和并发的系统级编程语言。它在 WebAssembly、命令行工具、网络服务、嵌入式系统等领域都展现出了卓越的能力。开始学习 Rust 的第一步,就是成功地在你的计算机上安装 Rust 编译器和相关的工具链。
本文将带你一步步完成 Rust 的安装过程,重点介绍官方推荐的安装工具 rustup
。我们将详细讲解 rustup
的功能、如何在不同的操作系统上使用它进行安装,以及安装后如何验证、管理和使用你的 Rust 环境。无论你是 Windows、macOS 还是 Linux 用户,都能找到对应的指导。
1. 为什么选择 Rust?为什么使用 rustup
?
在开始安装之前,先快速了解一下为什么 Rust 值得你投入时间和精力:
- 内存安全,没有垃圾回收: Rust 通过其所有权系统(Ownership System)在编译时强制执行内存安全,消除了空指针引用、数据竞争等常见的安全漏洞,而无需运行时垃圾回收器,这使其成为构建高性能、可靠系统的理想选择。
- 性能卓越: Rust 编译为本地代码,没有运行时开销,性能与 C/C++ 相媲美,甚至在某些方面更优。
- 并发无忧: Rust 的所有权和类型系统使得编写线程安全的并发代码变得容易,有效避免了数据竞争。
- 强大的生态系统: Rust 拥有一个快速发展的生态系统,特别是其包管理器和构建工具 Cargo,极大地简化了项目管理和依赖处理。
- 跨平台支持: Rust 支持多种平台,可以轻松构建适用于不同操作系统的应用程序。
理解了 Rust 的优势后,接下来谈谈安装。Rust 官方推荐的安装方式是使用 rustup
。
rustup
是什么?
rustup
是 Rust 的官方工具链安装器和管理器。它有以下核心优势:
- 易于安装: 通过简单的命令即可快速下载和安装 Rust。
- 工具链管理: 可以轻松安装、更新和切换不同版本的 Rust 工具链(如 Stable, Beta, Nightly 版本)以及特定历史版本。
- 目标平台支持: 可以方便地添加和管理不同目标平台的编译支持,这对于交叉编译(比如在 Windows 上为 Linux 或 WebAssembly 编译)至关重要。
- 组件管理: 可以安装额外但非常有用的组件,比如离线文档、源代码、以及支持 IDE 的 Language Server (rust-analyzer) 等。
- 统一体验: 无论你在哪个操作系统上安装 Rust,
rustup
都提供了一致的管理体验。
因此,强烈建议所有用户,特别是新手,使用 rustup
来安装和管理 Rust 环境。
2. 安装前的准备工作
在运行安装程序之前,请确保你的系统满足以下基本要求:
- 互联网连接: 安装过程需要从互联网下载文件。
- 终端或命令行访问: 你需要打开一个命令行窗口来执行安装命令。
- 足够的磁盘空间: Rust 工具链及组件会占用一定的磁盘空间,通常需要几百兆到几个 G。
特定操作系统的额外要求:
由于 Rust 编译器会生成本地代码,它通常依赖于系统上已有的 C 编译器和链接器。以下是各操作系统可能需要额外安装的工具:
- Windows: Rust 需要 Visual Studio 的 C++ Build Tools。最推荐的方式是安装免费的 Visual Studio Community 版本,并在安装时勾选 “Desktop development with C++”(使用 C++ 的桌面开发)工作负载。你也可以只安装 Visual Studio Build Tools 而不是完整的 IDE,但这需要一些额外的步骤。安装 Build Tools 的目的是获取 MSVC(Microsoft Visual C++)工具链,Rust 默认使用它来编译。请注意:如果你已经安装了支持 C++ 开发的 Visual Studio 版本,通常不需要重复安装。如果你选择使用 MinGW 或 Cygwin 作为 C 编译器环境,Rust 也支持,但 MSVC 是官方推荐和默认的 Windows 目标。本文主要围绕 MSVC 进行说明。
- macOS: Rust 需要 Xcode Command Line Tools。如果你之前没有安装过,可以在终端中运行
xcode-select --install
命令来安装。这将安装包括 GCC、Clang 在内的基本开发工具。 - Linux: 大多数 Linux 发行版默认安装了 GCC 或 Clang 等 C 编译器和链接器。如果你的系统比较精简或者缺少这些工具,可能需要安装
build-essential
(Debian/Ubuntu 系)或Development Tools
(Fedora/CentOS 系) 等软件包。例如,在 Debian/Ubuntu 上,可以运行sudo apt update && sudo apt install build-essential
。
建议: 虽然 rustup
在安装时可能会提示你缺少某些依赖,但最好在开始安装 rustup
之前就准备好这些前置条件,特别是 Windows 上的 Visual Studio Build Tools 和 macOS 上的 Xcode Command Line Tools,以免安装过程被打断。
3. 使用 rustup
进行安装
安装 rustup
的过程在不同操作系统上略有差异,主要是获取 rustup-init
可执行文件的方式不同。
3.1 Windows 系统安装
在 Windows 上,可以通过官方网站下载 rustup-init.exe
安装程序。
- 访问下载页面: 打开浏览器,访问 Rust 官方安装页面:https://www.rust-lang.org/tools/install
- 下载安装程序: 找到 Windows 对应的链接,点击下载
rustup-init.exe
。 - 运行安装程序: 双击下载的
rustup-init.exe
文件。Windows 可能弹出一个安全警告,确认运行即可。安装程序会在命令行窗口中运行。 -
遵循安装向导: 安装程序会提供几个选项:
- 1) Proceed with standard installation (default): 这是最简单和推荐的方式。它会安装最新稳定版(Stable)的 Rust 工具链以及一些常用组件。
- 2) Customize installation: 允许你自定义安装目录、默认工具链、需要安装的目标平台和组件。
- 3) Cancel installation: 取消安装。
对于绝大多数用户,直接输入
1
并按回车,或者直接按回车选择默认选项即可。安装程序会下载所需的文件并将其安装到用户目录下的
.rustup
和.cargo
文件夹中。它还会尝试修改系统的环境变量PATH
,以便你可以在任何地方直接运行rustc
、cargo
等 Rust 命令。 -
处理 PATH 环境变量: 安装程序会告诉你它正在修改 PATH。为了让修改后的 PATH 生效,你可能需要:
- 关闭并重新打开你的命令行窗口 (如 Command Prompt, PowerShell, 或 Windows Terminal)。
- 或者,如果你使用的是 PowerShell,可以尝试运行
refreshenv
(如果已安装) 或手动更新环境变量。
-
验证安装: 打开一个新的命令行窗口,运行以下命令来验证 Rust 是否安装成功:
bash
rustc --version
cargo --version如果安装成功,这些命令会显示安装的 Rust 编译器 (
rustc
) 和包管理器 (cargo
) 的版本信息。rustc 1.xx.x (xxxxxxxx xxx-xx-xx)
cargo 1.xx.x (xxxxxxxx xxx-xx-xx)如果显示 “command not found” 或类似的错误,请检查 PATH 环境变量是否正确设置,并确保你已经重启了命令行窗口。
3.2 macOS 和 Linux 系统安装
在 macOS 和 Linux 系统上,通常通过终端使用 curl
命令来下载并运行 rustup-init.sh
脚本。
- 打开终端: 打开你的终端应用程序(如 Terminal, iTerm2, GNOME Terminal, Konsole 等)。
-
运行安装命令: 在终端中输入以下命令并按回车:
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh这个命令的作用是:
*curl
: 下载工具。
*--proto '=https' --tlsv1.2 -sSf
: 确保使用 HTTPS 安全连接下载脚本。
*https://sh.rustup.rs
:rustup-init.sh
脚本的下载地址。
*| sh
: 将下载的脚本内容通过管道传递给sh
命令执行。 -
遵循安装向导: 脚本运行后,会显示与 Windows 安装程序类似的选项:
- 1) Proceed with standard installation (default): 默认选项,推荐。安装最新稳定版工具链和常用组件。
- 2) Customize installation: 自定义安装。
- 3) Cancel installation: 取消安装。
通常直接按回车选择默认选项
1
即可。脚本会下载所需文件,安装到用户主目录下的
.rustup
和.cargo
文件夹中。它还会自动修改你的 shell 配置文件(如~/.bashrc
,~/.zshrc
等),将$HOME/.cargo/bin
目录添加到你的 PATH 环境变量中。 -
使 PATH 生效: 安装脚本会提示你 PATH 已经被修改,并可能需要你重新加载 shell 配置。你有以下几种方法:
- 关闭并重新打开终端窗口。 这是最可靠的方法。
- 或者,在当前终端中运行安装脚本最后提示的命令,通常是
source $HOME/.cargo/env
(或者source ~/.bashrc
,source ~/.zshrc
等,具体取决于你的 shell 和安装脚本的提示)。
-
验证安装: 打开一个新的终端窗口(或在当前终端中 source 了配置后),运行以下命令:
bash
rustc --version
cargo --version如果安装成功,将显示 Rust 编译器和 Cargo 的版本信息。
rustc 1.xx.x (xxxxxxxx xxx-xx-xx)
cargo 1.xx.x (xxxxxxxx xxx-xx-xx)如果遇到 “command not found” 错误,请检查你的 shell 配置文件是否被正确修改,并且你已经重新加载了配置或重启了终端。
4. 理解安装目录和环境变量
rustup
默认会将 Rust 工具链和 Cargo 相关文件安装到你的用户主目录下:
$HOME/.rustup
: 存放不同版本的 Rust 工具链、目标平台支持、组件等。$HOME/.cargo
: 存放 Cargo 的全局配置、编译缓存、以及通过cargo install
安装的可执行程序。
rustup
安装时最重要的一个步骤就是将 $HOME/.cargo/bin
目录添加到系统的 PATH
环境变量中。这是为了让你可以在任何终端或命令行窗口中直接运行安装在该目录下的可执行文件,包括 rustc
, cargo
, rustup
本身,以及后续通过 cargo install
安装的其他工具。
如何检查 PATH 环境变量?
- Windows (Command Prompt):
echo %PATH%
- Windows (PowerShell):
echo $env:Path
- macOS / Linux (Bash, Zsh等):
echo $PATH
检查输出中是否包含 .../Users/YourUserName/.cargo/bin
(Windows) 或 /home/YourUserName/.cargo/bin
(Linux) / /Users/YourUserName/.cargo/bin
(macOS)。
如果 PATH 没有包含这个目录,你需要手动将其添加进去。具体方法因操作系统和 shell 而异,通常涉及编辑系统或用户级别的环境变量设置文件。不过,rustup-init
脚本通常会为你处理好这一点。
5. 使用 rustup
管理 Rust 工具链
rustup
的强大之处在于它不仅仅是一个安装器,更是一个强大的管理器。安装完成后,你可以使用 rustup
命令来管理你的 Rust 环境。
运行 rustup --help
可以查看所有可用的子命令。以下是一些最常用的 rustup
命令:
5.1 查看已安装的工具链
bash
rustup toolchain list
这个命令会列出所有通过 rustup
安装的 Rust 工具链。默认安装会包含一个 stable
工具链,并可能标记为 (default)
。
stable-x86_64-apple-darwin (default)
这里的 x86_64-apple-darwin
表示目标三元组 (Target Triple),描述了 CPU 架构、厂商、操作系统和 ABI。
5.2 安装其他工具链 (Beta, Nightly 或特定版本)
Rust 有三个主要的发布渠道:Stable(稳定版)、Beta(测试版)和 Nightly(每夜构建版)。Nightly 版本包含最新的实验性特性,但不保证稳定性;Beta 版本是 Stable 发布前的测试版;Stable 版本是最稳定和推荐用于生产环境的。
你可以使用 rustup install
命令安装其他工具链:
bash
rustup install beta
rustup install nightly
rustup install 1.60.0 # 安装特定历史版本
安装完成后,再次运行 rustup toolchain list
就可以看到新安装的工具链了。
5.3 设置默认工具链
默认工具链是你直接运行 rustc
或 cargo
命令时使用的版本。默认安装时,Stable 版本会被设置为默认。你可以使用 rustup default
命令来更改默认工具链:
bash
rustup default stable
rustup default beta
rustup default nightly
5.4 为特定项目设置覆盖工具链 (Override)
有时,你的某个项目可能需要使用特定的 Rust 版本(比如为了使用 Nightly 特性,或者兼容旧版本)。你可以在项目目录中使用 rustup override set
命令为该目录及其子目录设置一个特定的工具链,而不会影响全局默认设置。
进入你的项目目录(例如,一个通过 cargo new my_project
创建的项目):
bash
cd my_project
rustup override set nightly
现在,当你在 my_project
目录或其子目录中运行 rustc
或 cargo
时,将自动使用 nightly
工具链。离开这个目录,则恢复使用全局默认工具链。
你可以使用 rustup override list
查看当前设置的所有覆盖规则。
要移除一个目录的覆盖设置,在该目录中运行:
bash
rustup override unset
5.5 更新 Rust 工具链
Rust 每六周发布一个新的 Stable 版本。保持工具链最新是一个好习惯,可以获取最新的特性、性能优化和 bug 修复。
更新所有已安装的工具链和 rustup
本身:
bash
rustup update
这个命令会检查所有你安装的工具链是否有新版本,并进行更新。它也会检查 rustup
自身是否有更新并提示你更新。
你也可以指定更新某个特定的工具链:
bash
rustup update stable
rustup update nightly
5.6 卸载工具链
如果你不再需要某个特定版本的工具链,可以使用 rustup toolchain uninstall
卸载它以节省空间:
bash
rustup toolchain uninstall beta
rustup toolchain uninstall 1.60.0
5.7 安装组件 (Components)
rustup
允许你安装一些额外的组件,它们提供了非常实用的功能:
rust-docs
: 离线版 Rust 标准库文档。安装后,你可以运行rustup doc
在浏览器中查看本地文档,无需联网。强烈推荐安装!rust-analyzer
: Rust 的 Language Server 实现,为 VS Code, IntelliJ IDEA (通过插件), Neovim 等编辑器提供代码补全、跳转定义、错误提示、重构等高级功能。它是现代 Rust 开发不可或缺的工具。rust-src
: Rust 标准库的源代码,对于理解内部机制或调试很有帮助。clippy
: 一个 Rust 代码静态分析工具,可以找出代码中常见的错误和不规范的地方。rustfmt
: Rust 代码格式化工具,可以自动按照标准风格格式化你的代码。
查看可用的组件:
bash
rustup component list
安装某个组件(例如,为默认工具链安装离线文档和 rust-analyzer
):
bash
rustup component add rust-docs
rustup component add rust-analyzer
默认情况下,组件是安装到默认工具链上的。如果你想为特定工具链安装组件,需要先切换到该工具链或使用 --toolchain
标志:
bash
rustup component add rust-docs --toolchain nightly
5.8 添加目标平台 (Targets)
默认安装的 Rust 工具链只能为你的当前操作系统和架构编译程序。如果你需要为其他平台(如 Windows 上的 Linux 或 WebAssembly)编译,需要添加相应的目标平台支持。
查看可用的目标平台列表:
bash
rustup target list
列表会非常长,因为它包含了各种操作系统、架构和 ABI 的组合。已安装的目标会标记为 (installed)
。
添加一个目标平台(例如,在 Linux 上为 Windows 添加 x86_64 支持,或者为 WebAssembly 添加支持):
bash
rustup target add x86_64-pc-windows-gnu # 使用 GNU 工具链的 Windows 64位目标
rustup target add wasm32-unknown-unknown # 通用的 WebAssembly 目标
添加目标平台后,你就可以使用 Cargo 的 --target
标志来为该平台编译代码了:
bash
cargo build --target x86_64-pc-windows-gnu
cargo build --target wasm32-unknown-unknown
5.9 卸载 rustup
和 Rust
如果出于某种原因需要完全移除 Rust 和 rustup
,可以使用 rustup
自带的卸载命令:
bash
rustup self uninstall
这个命令会删除 rustup
本身、所有安装的工具链、组件以及修改过的 PATH 环境变量配置。执行后,请重启终端或计算机以确保环境变量更改生效。
6. 其他安装方式 (不推荐初学者使用)
虽然 rustup
是官方推荐且功能最强大的安装方式,但了解其他方式也有助于拓宽视野:
-
系统包管理器: 某些操作系统或发行版在其官方软件仓库中提供了 Rust 软件包(如 apt, yum, brew, pacman 等)。你可以使用相应的包管理器安装 Rust。然而,通过包管理器安装的版本通常不是最新的 Stable 版本,并且无法像
rustup
那样方便地管理工具链、目标和组件。对于初学者或希望使用最新 Rust 特性的开发者,不建议首选此方式。- 优点:与系统软件管理集成,依赖处理可能更简单。
- 缺点:版本可能过旧,管理功能远不如
rustup
。
-
从源代码构建: 对于高级用户或需要针对特定硬件/操作系统进行定制编译的情况,可以从 Rust 源代码进行构建。这个过程比较复杂,需要安装更多构建依赖,耗时较长,不适合日常开发或初学者。
- 优点:高度定制化,理解底层构建过程。
- 缺点:复杂,耗时,需要更多技术知识。
总结: 对于绝大多数用户,特别是新手,请务必使用 rustup
进行安装。
7. 安装后的下一步:编写你的第一个 Rust 程序
恭喜你!到这里,Rust 已经成功安装在你的系统上了。现在是时候编写你的第一个 Rust 程序了。
Rust 的标准项目结构和构建流程由 Cargo 管理。Cargo 是 Rust 的构建工具和包管理器。通过 rustup
安装 Rust 时,Cargo 也会一并安装。
打开你的终端或命令行,运行以下命令创建一个新的 Rust 项目:
bash
cargo new hello_rust
这个命令会在当前目录下创建一个名为 hello_rust
的新文件夹,其结构如下:
hello_rust/
├── Cargo.toml
└── src/
└── main.rs
Cargo.toml
: 这是项目的清单文件,包含了项目的元信息、依赖项等。src/main.rs
: 这是你的主要源代码文件。Cargo 默认创建一个包含一个简单 “Hello, world!” 程序的main.rs
文件。
进入项目目录:
bash
cd hello_rust
打开 src/main.rs
文件,你会看到类似以下内容:
rust
fn main() {
println!("Hello, world!");
}
这是一个非常简单的 Rust 程序:
* fn main()
定义了一个名为 main
的函数,这是 Rust 程序的入口点。
* println!
是一个宏,用于在控制台打印文本。
现在,使用 Cargo 来构建并运行这个程序:
bash
cargo run
cargo run
命令会执行以下步骤:
1. 查找当前目录或父目录中的 Cargo.toml
文件,确定项目根目录。
2. 编译项目(如果之前没有编译过或代码有改动)。编译生成的可执行文件默认放在 target/debug/
目录下。
3. 运行编译生成的可执行文件。
你应该会在终端看到输出:
Compiling hello_rust v0.1.0 (...)
Finished dev [unoptimized + debuginfo] target(s) in X.XXs
Running `target/debug/hello_rust`
Hello, world!
至此,你已经成功安装了 Rust,创建了一个新项目,并运行了你的第一个 Rust 程序!
8. 常见问题及故障排除
尽管 rustup
使得安装过程非常顺畅,但有时也可能遇到问题。以下是一些常见问题及其解决方法:
-
错误:
command not found: rustc
或cargo
- 原因: PATH 环境变量没有正确设置或没有生效,或者
$HOME/.cargo/bin
目录不存在。 - 解决方法:
- 确保
rustup-init
安装程序成功完成。 - 检查 PATH 环境变量是否包含
$HOME/.cargo/bin
(或 Windows 上的对应路径)。 - 如果你在安装时选择了默认选项,
rustup-init
应该已经修改了你的 shell 配置文件(如~/.bashrc
,~/.zshrc
,~/.profile
等)。请检查这些文件是否包含了类似export PATH="$HOME/.cargo/bin:$PATH"
的行(Windows 上是注册表或系统环境变量设置)。 - 最常见的解决方法是:关闭当前终端窗口,并重新打开一个新的终端窗口。 这会加载最新的环境变量设置。
- 如果重新打开终端无效,尝试在当前终端中手动加载配置:
source ~/.bashrc
(或其他你的 shell 配置文件)。 - 如果
$HOME/.cargo/bin
目录不存在,说明安装过程可能失败了。请重新运行rustup-init
安装程序。
- 确保
- 原因: PATH 环境变量没有正确设置或没有生效,或者
-
错误: 链接器错误 (Linker Error)
- 原因: 缺少必要的 C 编译器或链接器工具。在 Windows 上通常是缺少 Visual Studio C++ Build Tools (MSVC),在 macOS 上缺少 Xcode Command Line Tools,在 Linux 上缺少 build-essential 或类似的开发工具包。
- 解决方法:
- Windows: 确保你安装了 Visual Studio,并在安装时勾选了 “Desktop development with C++” 工作负载。或者单独安装 Visual Studio Build Tools。安装后,可能需要重启计算机才能使环境变量和工具链设置完全生效。
- macOS: 在终端运行
xcode-select --install
并按照提示完成安装。 - Linux: 使用你的包管理器安装开发工具包,例如
sudo apt install build-essential
(Debian/Ubuntu) 或sudo yum groupinstall "Development Tools"
(Fedora/CentOS)。 - 安装完依赖后,再次尝试编译你的 Rust 项目。
-
错误: 下载失败或连接超时
- 原因: 网络问题、防火墙或代理设置。
- 解决方法:
- 检查你的互联网连接是否正常。
- 如果你在使用公司或学校网络,可能存在防火墙或代理。请检查你的网络环境是否允许访问
https://sh.rustup.rs
和 Rust 官方镜像站点。 - 如果需要通过代理访问,请设置系统的环境变量
HTTP_PROXY
和HTTPS_PROXY
。具体设置方法取决于你的操作系统和代理服务器。例如,在 Linux/macOS 的 Bash 中可以这样设置(替换为你的代理地址):export HTTPS_PROXY=http://your.proxy.server:port
,然后在同一个终端窗口中运行安装命令。
-
错误: 权限不足 (Permission Denied)
- 原因: 当前用户没有足够的权限在目标安装目录或修改环境变量。
- 解决方法:
rustup-init
默认安装到用户主目录下 ($HOME
), 通常不需要管理员权限。如果你尝试安装到系统目录或其他受保护的目录,可能会遇到权限问题。- 确保你正在使用拥有足够权限的用户账户。
- 如果你是在使用系统包管理器安装 Rust,可能需要使用
sudo
命令。但是对于rustup
,不建议使用sudo
来运行rustup-init
脚本,因为它会把 Rust 安装到 root 用户目录下,并修改 root 用户的 PATH,这通常不是你想要的。确保你是以普通用户身份运行rustup-init
。 - 在 Windows 上,确保你右键点击
rustup-init.exe
并选择了 “以管理员身份运行”,虽然通常不需要,但在某些严格权限设置的系统上可能会有帮助(但标准安装流程通常不需要)。
9. 结语
恭喜你完成了 Rust 的安装过程!现在你已经拥有了探索 Rust 强大功能的基石。通过本文,你不仅学会了如何使用 rustup
安装 Rust,还了解了如何管理不同的工具链、组件和目标平台,以及如何解决安装过程中可能遇到的常见问题。
Rust 的学习曲线可能比一些其他语言稍微陡峭,特别是其所有权和借用系统。但请不要因此气馁。官方文档(特别是《Rust 程序设计语言》中文版,可以通过 rustup doc --book
离线访问或在线阅读)是非常优秀的学习资源。
现在,从修改你刚刚创建的 hello_rust
项目开始,尝试编写一些简单的 Rust 代码,熟悉 Cargo 的使用,然后逐步深入学习 Rust 的核心概念。
祝你在 Rust 的世界里编程愉快!