Rust新手第一课:Mac环境搭建踩坑记录

欢迎来到我的博客,代码的世界里,每一行都是一个故事

🎏:你只管努力,剩下的交给时间

🏠 :小破站

Rust新手第一课:Mac环境搭建踩坑记录

前言

最近看到很多人在聊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

这样做的好处是:

  1. 下载慢也没关系,可以多试几次
  2. 可以先看看脚本内容,安心一点

下载完可以用 cat rustup-init.sh 看看里面写了啥。不过我看了一眼,全是shell脚本,看不太懂,算了。


第二步:运行安装脚本

bash 复制代码
sh rustup-init.sh

运行后出现了一个的界面

界面上显示:

  • 工具会安装到 /Users/xiaobo/.cargo/bin
  • 会自动修改 PATH 环境变量
  • 默认配置是 aarch64-apple-darwin(确认是M芯片)
  • 工具链选择 stable(稳定版)

有三个选项:

  1. 标准安装(直接回车)
  2. 自定义安装
  3. 取消安装

我选了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

结果:

  • rustccargo 报错说没有默认工具链
  • rustup 能显示版本号:rustup 1.28.2

原来rustup装好了,但还没下载Rust编译器!


第五步:下载Rust编译器

按照提示运行:

bash 复制代码
rustup default stable

这个命令会:

  1. 下载最新的稳定版Rust(1.91.0)
  2. 下载cargo、clippy、rustfmt等工具
  3. 设置为默认工具链

下载过程显示:

  • 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.0
  • cargo 1.91.0
  • rustup 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!

几个发现

  1. let 声明的变量默认不可变
  2. mut 才能修改:let mut y = 10
  3. 编译器会警告你: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环境,主要步骤:

  1. ✅ 下载安装脚本:curl https://sh.rustup.rs > rustup-init.sh
  2. ✅ 运行安装:sh rustup-init.sh
  3. ⚠️ 遇到权限问题?手动配置环境变量到 .zshrc
  4. ✅ 下载编译器:rustup default stable
  5. ✅ 验证安装:rustc --version
  6. ✅ 安装VSCode插件:rust-analyzer
  7. ✅ 创建项目:cargo new 项目名
  8. ✅ 运行代码: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
相关推荐
cch891835 分钟前
汇编与Java:底层与高层的编程对决
java·开发语言·汇编
荒川之神2 小时前
拉链表概念与基本设计
java·开发语言·数据库
chushiyunen2 小时前
python中的@Property和@Setter
java·开发语言·python
小樱花的樱花2 小时前
C++ new和delete用法详解
linux·开发语言·c++
froginwe112 小时前
C 运算符
开发语言
fengfuyao9852 小时前
低数据极限下模型预测控制的非线性动力学的稀疏识别 MATLAB实现
开发语言·matlab
摇滚侠3 小时前
搭建前端开发环境 安装 nodejs 设置淘宝镜像 最简化最标准版本 不使用 NVM NVM 高版本无法安装低版本 nodejs
java·开发语言·node.js
t198751283 小时前
MATLAB十字路口车辆通行情况模拟系统
开发语言·matlab
yyk的萌3 小时前
AI 应用开发工程师基础学习计划
开发语言·python·学习·ai·lua
Amumu121384 小时前
Js:正则表达式(一)
开发语言·javascript·正则表达式