安装 Rust 并运行第一个程序
使用 rustup 安装工具链、验证 rustc/cargo、创建项目并运行第一个程序,建立可重复的本地开发基线。
#type / howto
#status / growing
#tech / dev
#resource / rust
[!info] 关联笔记
安装 Rust 并运行第一个程序
这个概念为什么出现
学语法之前,必须先有一条可验证的工具链路径:
rustc/cargo/rustup在 PATH 中- 版本与默认工具链可知
- 能
cargo new创建项目 - 能
cargo run/cargo test/cargo check
否则后续所有“报错”都分不清是代码问题还是环境问题。本篇是 howto:目标不是讲完语言,而是装好、跑通、知道坏了怎么查。
[!abstract] 一句话理解 用官方 rustup 安装稳定工具链 → 用
rustc -V/cargo -V/rustup show验收 →cargo new建项目 →cargo run证明环境可用。
目标
完成后应满足:
rustc --version与cargo --version输出稳定版工具链rustup show能看到 default toolchain- 新建二进制项目
cargo run打印预期输出 cargo test在默认模板上可成功退出- 能区分“环境坏了”与“代码错了”
最小可运行示例
场景:新同事第一天要在笔记本上跑通订单服务脚手架
不必接数据库。先证明:本机能编译、能跑、能测。
官方推荐用 rustup 安装,用 Cargo 管理项目,而不是手工东拼西凑编译器路径。
// src/main.rs —— cargo new hello_rust 默认会生成类似入口
// 业务意图:进程启动时打印就绪信息,证明二进制可执行。
// 教学点:二进制 crate 的入口是 main;cargo run 负责编译并执行。
fn main() {
// 订单脚手架就绪日志(示例文案)
println!("hello, Rust");
}
建议运行:
# 1) 安装(Linux/macOS 官方脚本;Windows 见 rustup 官网)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 按提示加载环境,例如:
# source "$HOME/.cargo/env"
# 2) 验收
rustc --version
cargo --version
rustup show
# 3) 创建并运行
cargo new hello_rust
cd hello_rust
cargo run
cargo test
cargo check
期望输出(cargo run 关键行):
hello, Rust
(具体模板文案以当前 cargo new 默认为准;可把 println! 改成上面字符串以对齐本笔记。)
结合场景再看三个关注点
- rustup 管工具链,cargo 管项目:装错成“只有某个 IDE 插件”会导致命令行不可复现。
cargo check快于完整链接:日常改代码先 check,再 run/test。- 默认模板自带测试目录结构心智:先让
cargo test绿,再加业务代码。
核心步骤与准确模型
1. 安装受支持版本
- 首选:Install Rust 的 rustup
- 组件默认通常包含:
rustc、cargo、rust-std等 - 常用附加组件:
rustfmt、clippy(见 Clippy 与 rustfmt)
rustup component add rustfmt clippy
2. 验收环境
| 命令 | 你在确认什么 |
|---|---|
rustc --version | 编译器在 PATH |
cargo --version | 构建工具在 PATH |
rustup show | 默认工具链与已装 target |
rustup update | 稳定通道可更新 |
3. 项目闭环
cargo new hello_rust
├── Cargo.toml # 包清单
└── src/main.rs # 二进制入口
常用命令:
| 命令 | 作用 |
|---|---|
cargo run | 编译(debug)并运行 |
cargo build | 只构建 |
cargo build --release | 优化构建 |
cargo test | 跑测试 |
cargo check | 类型检查,不产最终产物(更快) |
4. 排错心智
| 现象 | 优先怀疑 |
|---|---|
command not found: cargo | PATH / 未 source env / 安装未完成 |
能 rustc 不能 cargo | 残缺安装,回到 rustup |
| 网络失败拉依赖 | 代理/镜像/防火墙(crates.io) |
| 编辑器红、命令行绿 | IDE 组件/工具链指向不一致 |
边界情况与反直觉行为
- 系统包管理器的
rustc可能过旧:学习与现代 edition 建议 rustup 主路径。 sudo安装通常不推荐:用户级 rustup 更易管理多工具链。- 企业代理环境:需单独配置
~/.cargo/config.toml镜像或代理,本篇不展开具体内网策略。
常见误区
[!warning] 常见误区:只装 IDE 插件不装工具链 错误理解:装了编辑器扩展就能学 Rust。
正确模型:扩展依赖本机 rust-analyzer + 工具链。
为何易错:其他语言有时“插件自带 runtime”的错觉。
工程实践
- 固定团队默认:
stable工具链 + 约定 edition(如 2021/2024,以项目Cargo.toml为准)。 - CI 复现本地:同一 major 工具链,跑
fmt --check、clippy、test。 - 学会读
rustc错误索引与cargo输出的文件:行号。
本节总结
- 安装用 rustup,项目用 cargo。
- 验收三件套:
rustc/cargo/rustup show。 - 第一天目标是 run/test/check 闭环,不是背完语法。
自测题
概念题
- rustup 与 cargo 各解决什么问题?
操作题
- 如何验证 clippy 已安装?
参考答案
- rustup:工具链/组件/target;cargo:构建、依赖、测试、运行。
rustup component list --installed | rg clippy或直接cargo clippy -V。
延伸阅读与资料来源
| 资料 | 类型 | 支撑内容 |
|---|---|---|
| Install Rust | 官方 | 安装入口 |
| rustup book | 官方 | 工具链管理 |
| Cargo Book | 官方 | 项目与命令 |
| The Book ch01 | 官方书 | 入门闭环 |