Linux系统中Rust包管理工具使用教程
一 安装与准备
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shsource $HOME/.cargo/env(或将 export PATH=$HOME/.cargo/bin:$PATH 加入 shell 配置)rustc --version、cargo --versionsudo apt install rust cargoexport RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustupexport RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup~/.cargo/config.toml 添加
[source.crates-io] replace-with = 'mirror'[source.mirror] registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"[registries.mirror] index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"二 快速上手 创建与运行项目
cargo new my_app(生成 src/main.rs)cargo new my_lib --lib(生成 src/lib.rs)cargo build(开发构建,输出到 target/debug)cargo run(编译并运行)cargo build --release(优化构建,输出到 target/release)cargo check(比 build 更快)cargo testcargo doccargo clean三 依赖管理 Cargo.toml 与版本控制
[dependencies] 下写入包名与版本
serde = { version = "1.0", features = ["derive"] }rand = "0.8"=1.2.3^1.2.3(保持主版本不变,允许次版本与补丁更新)>=1.2.0, <2.0.0cargo update(更新 Cargo.lock 中记录的精确版本)cargo tree四 常用命令速查表
| 命令 | 作用 | 常用选项或说明 |
|---|---|---|
cargo new <name> |
创建新项目 | --lib 创建库;默认创建二进制 |
cargo init |
初始化当前目录为 Cargo 项目 | 生成 Cargo.toml 与 src/ |
cargo build |
编译项目 | --release 发布构建 |
cargo run |
编译并运行 | 可带运行参数 |
cargo check |
仅检查能否编译 | 速度快,不产出二进制 |
cargo test |
运行测试 | 支持 -- --nocapture 等 |
cargo doc |
生成项目文档 | 打开 target/doc/index.html |
cargo clean |
清理构建产物 | 删除 target/ |
cargo update |
更新依赖到兼容范围最新 | 改写 Cargo.lock |
cargo tree |
查看依赖树 | 需安装 cargo-tree |
cargo install <crate> |
全局安装可执行包 | 如 cargo install ripgrep |
cargo uninstall <crate> |
卸载全局包 | 与 install 成对使用 |
cargo publish |
发布库到 crates.io | 需账号与令牌 |
cargo --help / cargo <cmd> --help |
查看帮助 | 获取命令细节与用法 |
五 进阶与常见问题
Cargo.toml 配置目标工具链(如 x86_64-unknown-linux-gnu、aarch64-linux-android 等),并准备相应 target 与链接器;可使用 cargo build --target <triple> 指定目标三元组rustup install stable|beta|nightlyrustup default stablerustup updaterustup self uninstallcargo uninstall <crate>source $HOME/.cargo/env 已执行或 ~/.cargo/bin 已加入 PATHcargo update 与锁文件 Cargo.lock 保证复现构建;必要时回退版本或调整版本范围