温馨提示×

CentOS上Rust的包管理工具怎么用

小樊
36
2025-11-25 18:49:01
栏目: 编程语言

CentOS 上使用 Rust 包管理工具 Cargo 的实用指南

一 安装与准备

  • CentOS 上推荐通过 rustup 安装和管理 Rust 工具链(含 Cargo),无需 root 权限,命令如下:
    • 安装:curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
    • 使环境变量生效:source “$HOME/.cargo/env”
    • 验证:rustc --version、cargo --version
  • 也可使用发行版仓库安装稳定版(适合初学者):sudo dnf install rust cargo(在 CentOS Stream/Fedora 上可用)。安装后同样可用 cargo --version 验证。

二 常用 Cargo 命令速览

  • 项目与依赖
    • 新建项目:cargo new my_project && cd my_project
    • 添加依赖:编辑 Cargo.toml 的 [dependencies],如 serde = { version = “1.0”, features = [“derive”] }
    • 更新依赖:cargo update(更新 Cargo.lock 中记录的精确版本)
    • 依赖树:cargo tree(查看依赖层级,排查冲突)
  • 构建与运行
    • 调试构建:cargo build(产物在 target/debug/)
    • 发布构建:cargo build --release(产物在 target/release/)
    • 快速运行:cargo run;如需发布模式运行可结合构建结果执行
    • 仅检查能否编译:cargo check(比 build 更快)
  • 测试与文档
    • 运行测试:cargo test
    • 生成并打开文档:cargo doc --open
  • 其他常用
    • 清理缓存:cargo clean
    • 安装二进制工具:cargo install ripgrep(安装到 ~/.cargo/bin,请确保该路径在 PATH 中)

三 依赖管理与版本控制要点

  • 核心文件
    • Cargo.toml:项目清单,定义元数据(如 name、version、edition)、依赖与特性(features)
    • Cargo.lock:自动生成,锁定所有依赖的精确版本,确保可重复构建;团队协作与 CI 建议提交此文件
  • 常用操作
    • 添加或升级依赖后执行 cargo build 自动下载并解析;如需刷新版本约束执行 cargo update
    • 查看依赖关系与冲突:cargo tree
    • 区分运行时与开发时依赖:将测试、基准等放入 [dev-dependencies],避免打进发布产物

四 国内镜像与加速(可选)

  • 配置 Cargo 国内源(提升 crates.io 下载速度)
    • 编辑或创建文件:~/.cargo/config.toml
    • 示例(清华源):
      • [source.crates-io] replace-with = ‘tuna’
      • [source.tuna] registry = “https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git”
      • [registries.tuna] index = “https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git”
      • [net] git-fetch-with-cli = true
  • 也可使用 rsproxy 等镜像,方式类似(将 replace-with 设为 rsproxy 并配置对应 index)。

五 工作区与发布简要

  • 工作区(Workspace):管理多个相关包,统一依赖与锁文件
    • 根目录 Cargo.toml 中声明:
      • [workspace] members = [“crate1”, “crate2”] resolver = “2”(推荐新版解析器)
    • 统一构建:cargo build --workspace;共享 Cargo.lock,避免重复下载与版本分裂
  • 发布到 crates.io
    • 在账户设置获取 API Token,本地执行:cargo login
    • 完善 Cargo.toml 元数据(name、version、description、license 等)
    • 执行:cargo publish(版本号递增后才能再次发布)

0