温馨提示×

Linux如何支持Rust语言开发

小樊
43
2025-12-14 08:40:20
栏目: 编程语言

Linux 支持 Rust 开发

一 安装与配置 Rust 工具链

  • 使用 rustup 安装官方工具链(包含 rustccargorustup):
    • 命令:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    • 安装后执行:source "$HOME/.cargo/env"~/.cargo/bin 加入 PATH
    • 验证:rustc --versioncargo --version
  • 发行版依赖(用于本地编译原生依赖):
    • Debian/Ubuntu:sudo apt update && sudo apt install -y curl build-essential gcc make
    • RHEL/CentOS/Fedora:sudo dnf install -y curl cmake gccsudo yum install -y cmake gcc
  • 国内镜像加速(可选,提升下载速度):
    • 设置环境变量后安装:
      • export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
      • export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
      • 再执行 rustup 安装脚本

二 创建项目与常用工作流

  • 创建项目:cargo new my_project && cd my_project
  • 运行与构建:
    • 开发运行:cargo run
    • 调试构建:cargo build
    • 发布构建:cargo build --release
  • 标准工程结构:
    • 项目根目录含 Cargo.toml(依赖与元信息)与 src/main.rs(入口)
    • 示例 src/main.rs
      fn main() {
          println!("Hello, world!");
      }
      
  • 常用开发工具(通过 cargo 安装):
    • 代码格式化:cargo install rustfmt
    • 静态检查:cargo install clippy
    • 文档生成:cargo doc

三 编辑器与调试配置

  • Visual Studio Code
    • 安装扩展:rust-analyzer(提供补全、跳转、诊断等)
    • 可选:Better TOML(编辑 Cargo.toml)、crates(依赖版本检查)、Rust Test Lens(快速运行测试)
  • GDB 调试(示例配置)
    • 在项目根目录创建 .vscode/tasks.json
      {
        "version": "2.0.0",
        "tasks": [{ "label": "build", "type": "shell", "command": "cargo", "args": ["build"] }]
      }
      
    • 创建 .vscode/launch.json
      {
        "version": "0.2.0",
        "configurations": [
          {
            "name": "Debug",
            "type": "gdb",
            "preLaunchTask": "build",
            "request": "launch",
            "target": "${workspaceFolder}/target/debug/${workspaceFolderBasename}",
            "cwd": "${workspaceFolder}",
            "arguments": ""
          }
        ]
      }
      
    • 使用 VS Code 调试面板启动即可。

四 容器化与 CI 实践

  • 多阶段 Docker 构建(减小镜像体积,提升交付效率)
    • 示例 Dockerfile:
      # 构建阶段
      FROM rust:1.72.1-slim-buster AS builder
      WORKDIR /app
      COPY . .
      RUN cargo build --release
      
      # 运行阶段(scratch 极小基础镜像)
      FROM scratch
      COPY --from=builder /app/target/release/my_rust_server /app
      CMD ["/app/my_rust_server"]
      
  • GitHub Actions 示例(.github/workflows/ci.yaml 片段)
    • 触发:pushpull_request
    • 步骤:安装工具链 → cargo buildcargo test → 构建并推送镜像 → 部署到 K3s

五 常见问题与排障

  • 命令未找到:确认已执行 source "$HOME/.cargo/env",并检查 ~/.bashrc~/.zshrc 中是否包含 export PATH="$HOME/.cargo/bin:$PATH"
  • 网络慢或安装失败:使用 USTC清华 镜像源后再执行 rustup 安装
  • 本地编译依赖缺失:在 Debian/Ubuntu 安装 build-essential,在 RHEL/CentOS/Fedora 安装 cmake gcc
  • 卸载:执行 rustup self uninstall 清理工具链

0