🎏:你只管努力,剩下的交给时间
🏠 :小破站
Rust新手第一课:Mac环境搭建踩坑记录
-
- 前言
- 第一步:下载安装脚本
- 第二步:运行安装脚本
- [第三步:遇到第一个坑 - 权限错误](#第三步:遇到第一个坑 - 权限错误)
- 第四步:验证安装
- 第五步:下载Rust编译器
- 第六步:验证成功
- 第七步:配置VSCode
- 第八步:创建第一个项目
- [第九步:运行Hello World](#第九步:运行Hello World)
- 第十步:试试基础语法
- 总结
- 国内镜像配置
前言
最近看到很多人在聊Rust,说什么内存安全、高性能、无GC...听起来很牛的样子。正好最近有点时间,决定试试看。这篇文章记录了我在Mac(M芯片)上安装Rust的完整过程,包括遇到的坑和解决办法。
如果你也是Mac用户,特别是M1/M2/M3芯片的,这篇文章应该能帮到你。
第一步:下载安装脚本
官方推荐的安装方式是用一条命令:
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
但我在国内,直接这样跑可能会超时。所以我选择先把脚本下载下来:
bash
cd Downloads
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup-init.sh

这样做的好处是:
- 下载慢也没关系,可以多试几次
- 可以先看看脚本内容,安心一点
下载完可以用 cat rustup-init.sh 看看里面写了啥。不过我看了一眼,全是shell脚本,看不太懂,算了。
第二步:运行安装脚本
bash
sh rustup-init.sh
运行后出现了一个的界面

界面上显示:
- 工具会安装到
/Users/xiaobo/.cargo/bin - 会自动修改 PATH 环境变量
- 默认配置是
aarch64-apple-darwin(确认是M芯片) - 工具链选择
stable(稳定版)
有三个选项:
- 标准安装(直接回车)
- 自定义安装
- 取消安装
我选了1,直接回车。
第三步:遇到第一个坑 - 权限错误
结果马上报错了:
error: could not amend shell profile: '/Users/xiaobo/.bash_profile':
could not write rcfile file: '/Users/xiaobo/.bash_profile':
Permission denied (os error 13)

什么情况? 看起来是没权限写 .bash_profile 文件。
不过我仔细一想,我用的是zsh(Mac默认shell),不是bash。而且rustup可能已经装好了,只是环境变量配置失败了。
解决办法 :手动把Rust工具路径加到 .zshrc 里
bash
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
这样就把 /Users/xiaobo/.cargo/bin 加到了PATH里。
第四步:验证安装
试着运行:
bash
rustc --version
cargo --version
rustup --version
结果:
rustc和cargo报错说没有默认工具链- 但
rustup能显示版本号:rustup 1.28.2
原来rustup装好了,但还没下载Rust编译器!
第五步:下载Rust编译器
按照提示运行:
bash
rustup default stable
这个命令会:
- 下载最新的稳定版Rust(1.91.0)
- 下载cargo、clippy、rustfmt等工具
- 设置为默认工具链

下载过程显示:
- cargo: 8.1 MiB
- rust-docs: 20.5 MiB
- rust-std: 26.0 MiB
- rustc: 60.9 MiB
总共100多MB,还好不算太大。 如果你网速慢,可以用国内镜像(文末有说明)。
第六步:验证成功
再次运行:
bash
rustc --version
cargo --version
rustup --version
这次成功了:
rustc 1.91.0cargo 1.91.0rustup 1.28.2
到这里,Rust就算装好了!
第七步:配置VSCode
既然要写Rust,得有个顺手的编辑器。我用的是VSCode(也有人用IntelliJ IDEA或者Vim)。
在VSCode的扩展商店搜索 rust-analyzer,安装它:

这个插件提供:
- 代码补全
- 语法检查
- 跳转定义
- 代码格式化
装完后,VSCode就能很好地支持Rust了。
第八步:创建第一个项目
在终端运行:
bash
mkdir vs-code-test-hello
cd vs-code-test-hello
cargo new hello_world

输出:
Creating binary (application) "hello_world" package
查看项目结构:
bash
cd hello_world
ls -la
会看到:
.git/- 已经初始化了git仓库.gitignore- 已经配置了忽略文件Cargo.toml- 项目配置文件src/- 源代码目录main.rs- 入口文件
cargo真贴心,连git都帮你初始化好了。
第九步:运行Hello World
在VSCode里打开 src/main.rs,默认代码是:
rust
fn main() {
println!("Hello, world!");
}
在VSCode里,main 函数上面会出现一个 ▶ Run 按钮:

点击运行按钮,输出:
Hello, world!
或者在终端用cargo运行:
bash
cargo run

输出:
Compiling hello_world v0.1.0
Running `target/debug/hello_world`
Hello, world!
第一个Rust程序跑起来了!
第十步:试试基础语法
既然环境搭好了,顺便试试Rust的基础语法。
变量和类型
修改 main.rs:
rust
fn main() {
// 变量绑定
let x = 5;
let mut y = 10;
y = 15;
// 数据类型
let integer: i32 = 42;
let float: f64 = 3.14;
let boolean: bool = true;
let text: &str = "Hello, Rust!";
println!("x = {}, y = {}", x, y);
println!("整数: {}, 浮点: {}, 布尔: {}, 文本: {}",
integer, float, boolean, text);
}

运行结果:
x = 5, y = 15
整数: 42, 浮点: 3.14, 布尔: true, 文本: Hello, Rust!
几个发现:
let声明的变量默认不可变- 加
mut才能修改:let mut y = 10 - 编译器会警告你:
y = 10这行赋值没用,因为后面又改成15了
函数
再试试函数:
rust
fn main() {
let result = add(5, 3);
println!("5 + 3 = {}", result);
greet("Rust开发者");
}
fn add(a: i32, b: i32) -> i32 {
a + b // 注意:没有return关键字和分号
}
fn greet(name: &str) {
println!("你好, {}!", name);
}

运行结果:
5 + 3 = 8
你好, Rust开发者!
Rust的函数有点特别:
- 最后一行如果不加分号,就是返回值
a + b相当于return a + b;
总结
从零开始在Mac上搭Rust环境,主要步骤:
- ✅ 下载安装脚本:
curl https://sh.rustup.rs > rustup-init.sh - ✅ 运行安装:
sh rustup-init.sh - ⚠️ 遇到权限问题?手动配置环境变量到
.zshrc - ✅ 下载编译器:
rustup default stable - ✅ 验证安装:
rustc --version - ✅ 安装VSCode插件:
rust-analyzer - ✅ 创建项目:
cargo new 项目名 - ✅ 运行代码:
cargo run
遇到的坑:
- 权限错误:手动配置环境变量解决
- 网络问题:用国内镜像(见附录)
感受:
- cargo真的很好用,自动生成项目结构
- 编译器报错信息很友好,会告诉你怎么改
- VSCode + rust-analyzer 体验不错
国内镜像配置
如果下载慢,可以用国内镜像。
安装时使用镜像
bash
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
sh rustup-init.sh
Cargo配置镜像
创建或编辑 ~/.cargo/config.toml:
toml
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
常用镜像源:
- 中科大:
https://mirrors.ustc.edu.cn/rust-static - 清华:
https://mirrors.tuna.tsinghua.edu.cn/rustup - 上海交大:
https://mirrors.sjtug.sjtu.edu.cn/rust-static
