Linux 搭建 Rust 开发环境:从 rustup 安装到 Cargo 镜像

目录

  • [## 前言](## 前言)
    • [一、Linux 下 Rust 环境由哪些部分组成](#一、Linux 下 Rust 环境由哪些部分组成)
      • [1.1 核心工具说明](#1.1 核心工具说明)
      • [1.2 推荐安装路线](#1.2 推荐安装路线)
    • 二、准备工作:确认系统与架构
      • [2.1 查看 Linux 发行版](#2.1 查看 Linux 发行版)
      • [2.2 查看 CPU 架构](#2.2 查看 CPU 架构)
    • 三、安装系统编译依赖
      • [3.1 Ubuntu / Debian](#3.1 Ubuntu / Debian)
      • [3.2 Fedora / RHEL / CentOS Stream](#3.2 Fedora / RHEL / CentOS Stream)
      • [3.3 Arch Linux / Manjaro](#3.3 Arch Linux / Manjaro)
      • [3.4 openSUSE](#3.4 openSUSE)
    • [四、使用 rustup 安装 Rust](#四、使用 rustup 安装 Rust)
      • [4.1 官方安装命令](#4.1 官方安装命令)
      • [4.2 让环境变量立即生效](#4.2 让环境变量立即生效)
      • [4.3 检查 PATH 配置](#4.3 检查 PATH 配置)
    • [五、配置 Rust stable 工具链](#五、配置 Rust stable 工具链)
      • [5.1 设置默认工具链](#5.1 设置默认工具链)
      • [5.2 更新工具链](#5.2 更新工具链)
      • [5.3 安装常用组件](#5.3 安装常用组件)
    • [六、配置 Cargo 下载源](#六、配置 Cargo 下载源)
      • [6.1 使用 sparse 协议](#6.1 使用 sparse 协议)
      • [6.2 配置国内镜像](#6.2 配置国内镜像)
      • [6.3 代理环境变量](#6.3 代理环境变量)
    • [七、创建第一个 Rust 项目](#七、创建第一个 Rust 项目)
      • [7.1 使用 cargo new](#7.1 使用 cargo new)
      • [7.2 查看 Cargo.toml](#7.2 查看 Cargo.toml)
      • [7.3 编写 main.rs](#7.3 编写 main.rs)
    • [八、Cargo 常用命令](#八、Cargo 常用命令)
      • [8.1 构建与运行](#8.1 构建与运行)
      • [8.2 推荐提交前命令](#8.2 推荐提交前命令)
      • [8.3 release 构建](#8.3 release 构建)
    • [九、配置 VS Code 开发 Rust](#九、配置 VS Code 开发 Rust)
      • [9.1 安装 VS Code 插件](#9.1 安装 VS Code 插件)
      • [9.2 推荐 settings.json](#9.2 推荐 settings.json)
      • [9.3 配置 LLDB 调试](#9.3 配置 LLDB 调试)
    • [十、终端与 Neovim 开发方案](#十、终端与 Neovim 开发方案)
      • [10.1 纯终端开发](#10.1 纯终端开发)
      • [10.2 Neovim + rust-analyzer](#10.2 Neovim + rust-analyzer)
      • [10.3 常见终端辅助工具](#10.3 常见终端辅助工具)
    • [十一、Linux 常见问题与解决方案](#十一、Linux 常见问题与解决方案)
      • [11.1 cargo 命令不存在](#11.1 cargo 命令不存在)
      • [11.2 编译时报 cc not found](#11.2 编译时报 cc not found)
      • [11.3 OpenSSL 编译失败](#11.3 OpenSSL 编译失败)
      • [11.4 Cargo 下载依赖很慢](#11.4 Cargo 下载依赖很慢)
      • [11.5 rust-analyzer 不生效](#11.5 rust-analyzer 不生效)
    • [十二、管理多个 Rust 工具链](#十二、管理多个 Rust 工具链)
      • [12.1 查看工具链](#12.1 查看工具链)
      • [12.2 安装 nightly](#12.2 安装 nightly)
      • [12.3 项目固定工具链](#12.3 项目固定工具链)
    • 十三、添加测试验证环境
      • [13.1 编写一个简单函数](#13.1 编写一个简单函数)
      • [13.2 运行测试](#13.2 运行测试)
      • [13.3 完整验证脚本](#13.3 完整验证脚本)
    • 总结
    • 相关资源

## 前言

Rust 是一门强调内存安全高性能并发可靠性的系统级编程语言。在 Linux 环境中学习和使用 Rust 非常合适,因为 Linux 本身拥有完善的编译工具链、包管理器、终端生态和服务器部署环境。

本文专注于 Linux 下搭建 Rust 环境 ,不展开 Windows 和 macOS。你将完成从系统依赖安装、rustup 安装、Cargo 镜像配置、VS Code 或终端开发、创建项目、运行测试到常见问题排查的完整流程。

建议使用 rustup 安装 Rust,而不是直接使用发行版软件源里的 rustcrustup 可以管理 stable、beta、nightly 多套工具链,也能安装 rustfmtclippyrust-src 等常用组件。

图示说明:Linux 搭建 Rust 的核心流程是"准备系统编译依赖 -> 安装 rustup -> 配置 Cargo -> 创建项目 -> 编译运行 -> 配置编辑器与调试工具"。

一、Linux 下 Rust 环境由哪些部分组成

1.1 核心工具说明

Linux 上的 Rust 开发环境通常由下面几部分组成:

工具 作用 是否推荐安装 常用命令
rustup Rust 工具链管理器 必装 rustup update
rustc Rust 编译器 必装 rustc --version
cargo Rust 包管理与构建工具 必装 cargo build
rustfmt 代码格式化工具 推荐 cargo fmt
clippy 静态检查工具 推荐 cargo clippy
rust-analyzer 编辑器语言服务 推荐 VS Code 插件
gcc/clang C/C++ 编译依赖 推荐 gcc --version
pkg-config 查找系统库信息 推荐 pkg-config --version

可以简单理解为:rustup 管工具链,rustc 管编译,cargo 管项目,系统编译依赖负责链接本地库

1.2 推荐安装路线

Linux 下推荐按下面顺序搭建:

  1. 确认发行版类型和系统架构。
  2. 安装基础编译依赖。
  3. 使用官方脚本安装 rustup
  4. 配置 Cargo 环境变量。
  5. 配置 Cargo sparse 协议或国内镜像。
  6. 安装 rustfmtclippyrust-src
  7. 创建项目并运行 cargo run
  8. 配置 VS Code、Neovim 或 JetBrains RustRover。
  9. 执行 cargo fmtcargo clippycargo test 做完整验证。

二、准备工作:确认系统与架构

2.1 查看 Linux 发行版

不同 Linux 发行版安装系统依赖的命令不同。先查看系统信息:

bash 复制代码
cat /etc/os-release

常见输出中会包含 IDVERSION_ID。例如 Ubuntu 可能是:

也可以查看内核版本:

bash 复制代码
uname -a

2.2 查看 CPU 架构

Rust 支持多种架构。开发机常见是 x86_64aarch64

bash 复制代码
uname -m

架构说明:

输出 含义 常见设备
x86_64 64 位 Intel/AMD 服务器、台式机、笔记本
aarch64 64 位 ARM ARM 服务器、开发板
armv7l 32 位 ARM 部分嵌入式设备

如果你只是普通 Linux 电脑或云服务器,大概率是 x86_64

三、安装系统编译依赖

3.1 Ubuntu / Debian

Ubuntu 和 Debian 推荐先安装下面这些依赖:

bash 复制代码
sudo apt update
sudo apt install -y build-essential curl git pkg-config libssl-dev ca-certificates

各依赖作用如下:

依赖 作用
build-essential 提供 gcc、g++、make 等编译工具
curl 下载 rustup 安装脚本
git 拉取依赖或项目代码
pkg-config 帮助 Rust crate 查找系统库
libssl-dev 编译 openssl 相关 crate
ca-certificates 保证 HTTPS 证书可用

3.2 Fedora / RHEL / CentOS Stream

Fedora 可以使用:

bash 复制代码
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y curl git pkg-config openssl-devel ca-certificates

如果是 RHEL 或 CentOS Stream,命令也基本类似:

bash 复制代码
sudo dnf install -y gcc gcc-c++ make curl git pkg-config openssl-devel ca-certificates

3.3 Arch Linux / Manjaro

Arch 系发行版使用 pacman

bash 复制代码
sudo pacman -Syu --needed base-devel curl git pkgconf openssl ca-certificates

base-devel 中包含常用编译工具,适合 Rust 编译本地依赖。

3.4 openSUSE

openSUSE 可以使用:

bash 复制代码
sudo zypper refresh
sudo zypper install -y -t pattern devel_basis
sudo zypper install -y curl git pkg-config libopenssl-devel ca-certificates

如果你使用其他发行版,核心思路不变:准备 C 编译器、链接器、curl、git、pkg-config 和 OpenSSL 开发包。

四、使用 rustup 安装 Rust

4.1 官方安装命令

Rust 官方推荐通过 rustup 安装:

bash 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装过程中一般选择默认选项即可,也就是:

  • stable 工具链
  • 当前系统对应 target
  • 默认 profile
  • 自动写入 shell 配置

4.2 让环境变量立即生效

安装完成后,当前终端可能还识别不到 cargo。执行:

bash 复制代码
source "$HOME/.cargo/env"

然后检查版本:

bash 复制代码
rustup --version
rustc --version
cargo --version

如果三个命令都能输出版本号,说明 Rust 核心环境已经安装成功。

4.3 检查 PATH 配置

Rust 默认安装到用户目录:

text 复制代码
~/.cargo/bin

可以查看 PATH

bash 复制代码
echo "$PATH"

如果没有 ~/.cargo/bin,可以手动写入 shell 配置。

Bash 用户:

bash 复制代码
echo 'source "$HOME/.cargo/env"' >> ~/.bashrc
source ~/.bashrc

Zsh 用户:

bash 复制代码
echo 'source "$HOME/.cargo/env"' >> ~/.zshrc
source ~/.zshrc

Fish 用户:

bash 复制代码
fish_add_path $HOME/.cargo/bin

五、配置 Rust stable 工具链

5.1 设置默认工具链

建议默认使用 stable:

bash 复制代码
rustup default stable

查看当前 active toolchain:

bash 复制代码
rustup show

输出中会看到当前默认工具链和安装目录。

5.2 更新工具链

Rust 会持续发布新版本,日常可以使用:

bash 复制代码
rustup update

如果只想更新 stable:

bash 复制代码
rustup update stable

5.3 安装常用组件

推荐安装:

bash 复制代码
rustup component add rustfmt clippy rust-src

组件说明:

组件 作用
rustfmt 自动格式化 Rust 代码
clippy 提供更严格的 lint 检查
rust-src 提供标准库源码,便于编辑器跳转

六、配置 Cargo 下载源

6.1 使用 sparse 协议

较新的 Cargo 支持 sparse registry,下载索引更快。创建或编辑:

bash 复制代码
mkdir -p ~/.cargo
nano ~/.cargo/config.toml

写入:

toml 复制代码
[registries.crates-io]
protocol = "sparse"

保存后测试:

bash 复制代码
cargo search serde

6.2 配置国内镜像

如果访问 crates.io 较慢,可以配置镜像。以 rsproxy 为例:

toml 复制代码
[source.crates-io]
replace-with = "rsproxy-sparse"

[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"

[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"

[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"

[net]
git-fetch-with-cli = true

配置完成后运行:

bash 复制代码
cargo search tokio

能正常返回搜索结果,说明 Cargo 索引访问正常。

6.3 代理环境变量

如果你在公司网络、校园网或代理环境中,也可以设置代理:

bash 复制代码
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

也可以只对 Git 设置代理:

bash 复制代码
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

取消代理:

bash 复制代码
git config --global --unset http.proxy
git config --global --unset https.proxy

七、创建第一个 Rust 项目

7.1 使用 cargo new

进入工作目录后执行:

bash 复制代码
cargo new hello_rust
cd hello_rust

项目结构如下:

text 复制代码
hello_rust
├── Cargo.toml
└── src
    └── main.rs

7.2 查看 Cargo.toml

Cargo.toml 是 Rust 项目的配置文件:

toml 复制代码
[package]
name = "hello_rust"
version = "0.1.0"
edition = "2021"

[dependencies]

字段说明:

  • name:项目名称。
  • version:项目版本。
  • edition:Rust edition。
  • dependencies:第三方依赖。

7.3 编写 main.rs

打开 src/main.rs

rust 复制代码
fn main() {
    println!("Hello, Linux Rust!");
}

运行:

bash 复制代码
cargo run

看到下面输出就说明成功:

text 复制代码
Hello, Linux Rust!

八、Cargo 常用命令

8.1 构建与运行

Rust 项目日常开发基本都围绕 Cargo 展开:

命令 作用 使用场景
cargo new demo 创建项目 初始化
cargo build 编译项目 开发阶段
cargo run 编译并运行 快速验证
cargo test 执行测试 单元测试/集成测试
cargo fmt 格式化代码 提交前
cargo clippy 静态检查 质量检查
cargo clean 清理构建产物 重新构建
cargo build --release 发布构建 生产部署

8.2 推荐提交前命令

提交代码前建议执行:

bash 复制代码
cargo fmt
cargo clippy -- -D warnings
cargo test

这三条命令分别检查格式、代码质量和行为正确性。

8.3 release 构建

发布二进制程序时使用:

bash 复制代码
cargo build --release

产物路径:

text 复制代码
target/release/

release 模式会启用优化,运行性能明显优于 debug 模式。

九、配置 VS Code 开发 Rust

9.1 安装 VS Code 插件

Linux 桌面环境可以使用 VS Code 开发 Rust,推荐插件:

插件 作用 链接
rust-analyzer Rust 语言服务 Marketplace
CodeLLDB 调试 Rust 程序 Marketplace
Even Better TOML TOML 高亮 Marketplace
crates 查看依赖版本 Marketplace

9.2 推荐 settings.json

在项目中创建 .vscode/settings.json

json 复制代码
{
  "editor.formatOnSave": true,
  "rust-analyzer.check.command": "clippy",
  "rust-analyzer.cargo.features": "all",
  "files.trimTrailingWhitespace": true
}

这份配置会让保存格式化和 Clippy 检查更顺手。

9.3 配置 LLDB 调试

安装 CodeLLDB 后,可以创建 .vscode/launch.json

json 复制代码
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "lldb",
      "request": "launch",
      "name": "Debug hello_rust",
      "cargo": {
        "args": ["build", "--bin=hello_rust"],
        "filter": {
          "name": "hello_rust",
          "kind": "bin"
        }
      },
      "args": [],
      "cwd": "${workspaceFolder}"
    }
  ]
}

注意把 hello_rust 改成自己的项目名。

十、终端与 Neovim 开发方案

10.1 纯终端开发

如果你习惯终端开发,可以使用:

bash 复制代码
cargo check
cargo test
cargo run

cargo check 不生成最终二进制,检查速度更快,适合频繁验证语法和类型。

10.2 Neovim + rust-analyzer

Neovim 用户可以通过 LSP 接入 rust-analyzer。核心依赖是:

bash 复制代码
rustup component add rust-analyzer

如果发行版没有直接提供 rust-analyzer,也可以让编辑器插件自动下载。

10.3 常见终端辅助工具

可以额外安装:

bash 复制代码
cargo install cargo-watch
cargo install cargo-edit

用途:

  • cargo-watch:文件变化后自动执行命令。
  • cargo-edit:提供 cargo addcargo rm 等依赖管理命令。

示例:

bash 复制代码
cargo watch -x check -x test

十一、Linux 常见问题与解决方案

11.1 cargo 命令不存在

原因通常是 ~/.cargo/bin 没有加入 PATH。

处理方式:

bash 复制代码
source "$HOME/.cargo/env"
echo "$PATH"

如果使用 Bash:

bash 复制代码
echo 'source "$HOME/.cargo/env"' >> ~/.bashrc
source ~/.bashrc

11.2 编译时报 cc not found

说明系统没有安装 C 编译器。

Ubuntu/Debian:

bash 复制代码
sudo apt install -y build-essential

Fedora:

bash 复制代码
sudo dnf groupinstall -y "Development Tools"

Arch:

bash 复制代码
sudo pacman -S --needed base-devel

11.3 OpenSSL 编译失败

很多依赖会用到 OpenSSL。Ubuntu/Debian 安装:

bash 复制代码
sudo apt install -y pkg-config libssl-dev

Fedora 安装:

bash 复制代码
sudo dnf install -y pkg-config openssl-devel

Arch 安装:

bash 复制代码
sudo pacman -S --needed pkgconf openssl

11.4 Cargo 下载依赖很慢

可以先开启详细日志:

bash 复制代码
cargo build -vv

如果卡在索引或下载阶段,优先配置 sparse 协议或国内镜像。

11.5 rust-analyzer 不生效

排查顺序:

  1. 确认 VS Code 打开的是项目根目录。
  2. 确认根目录存在 Cargo.toml
  3. 执行 cargo check 看项目是否能通过基础检查。
  4. 安装 rust-src
  5. 重启编辑器。

安装命令:

bash 复制代码
rustup component add rust-src

十二、管理多个 Rust 工具链

12.1 查看工具链

bash 复制代码
rustup toolchain list

常见输出:

text 复制代码
stable-x86_64-unknown-linux-gnu (default)
nightly-x86_64-unknown-linux-gnu

12.2 安装 nightly

某些实验功能需要 nightly:

bash 复制代码
rustup toolchain install nightly

临时使用 nightly:

bash 复制代码
cargo +nightly build

初学和生产项目仍然建议优先使用 stable

12.3 项目固定工具链

可以在项目根目录创建 rust-toolchain.toml

toml 复制代码
[toolchain]
channel = "stable"
components = ["rustfmt", "clippy", "rust-src"]
profile = "default"

团队成员进入项目后会自动使用指定工具链。

十三、添加测试验证环境

13.1 编写一个简单函数

修改 src/main.rs

rust 复制代码
fn add(left: i32, right: i32) -> i32 {
    left + right
}

fn main() {
    println!("1 + 2 = {}", add(1, 2));
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn add_should_work() {
        assert_eq!(add(1, 2), 3);
    }
}

13.2 运行测试

bash 复制代码
cargo test

如果看到测试通过,说明 Rust 编译、运行、测试链路都正常。

13.3 完整验证脚本

可以把下面命令逐条执行:

bash 复制代码
rustup --version
rustc --version
cargo --version
cargo new rust_env_check
cd rust_env_check
cargo run
cargo fmt
cargo clippy
cargo test

全部成功后,Linux Rust 环境就搭建完成了。

总结

Linux 下搭建 Rust 环境的核心步骤并不复杂:先安装系统编译依赖,再通过 rustup 安装 Rust stable 工具链,随后配置 Cargo 下载源,最后用 cargo newcargo runcargo test 做完整验证。

如果你使用 Ubuntu、Debian、Fedora、Arch 或 openSUSE,本文都给出了对应依赖安装命令。完成配置后,你就可以在 Linux 上使用 Rust 开发命令行工具、Web 服务、系统程序和高性能后端应用。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注。你的支持是我持续创作 Rust 学习笔记和 Linux 工程实践文章的动力!


相关资源

相关推荐
bsauce2 小时前
【kernel exploit】CVE-2026-23271 perf_event竞态UAF漏洞-ROP提权
linux·linux内核·内核漏洞·内核漏洞利用
Hehuyi_In3 小时前
从优雅到爆烈 —— Linux全力回收内存的一生
linux·内核·内存·memory·回收
杨充3 小时前
1.1 数据编码设计原理
linux·运维·网络·底层原理·数据编码
fan_music3 小时前
Linux I/O
linux
Java小白笔记3 小时前
Linux 手动部署 Oracle JDK 17 完全指南
java·linux·oracle
慵懒的猫mi4 小时前
deepin 25部署x11vnc+xrdp,实现vnc和mstsc双重访问
linux·windows·开源软件·deepin
小灰灰搞电子4 小时前
Rust 实现异步ModbusTCP主机源码分享
服务器·网络·modbustcp·rust
剑神一笑5 小时前
Linux lsof 命令深度解析:从文件描述符到进程追踪
linux·运维·php
小杍随笔5 小时前
【Rust 工具链管理完全指南:rustup toolchain 命令实战详解】
开发语言·后端·rust