入门 The Cargo Team 2026-09-13 15:48:22 · 0 阅读

第54章 Cargo remove 命令详解:从清单文件中移除依赖

名称

cargo-remove — 从 Cargo.toml 清单文件中移除依赖

用法

cargo remove [选项] 依赖

描述

Cargo.toml 清单中移除一个或多个依赖。

选项

分区选项

--dev

作为开发依赖移除。

--build

作为构建依赖移除。

--target target

作为指定目标平台的依赖移除。

为避免意外的 shell 展开,建议使用引号包裹每个 target,例如 --target 'cfg(unix)'

其他选项

--dry-run

不实际写入清单文件。

显示选项

-v
--verbose

使用详细输出。指定两次可获得“非常详细”的输出,包含额外信息,如依赖警告和构建脚本输出。 也可通过 term.verbose 配置值指定。

-q
--quiet

不打印 cargo 的日志信息。 也可以通过 term.quiet 配置项 设置。

--color when

控制何时使用彩色输出。有效取值:

  • auto(默认):自动检测终端是否支持彩色显示。
  • always:始终使用彩色显示。
  • never:从不使用彩色显示。

也可以通过 term.color 配置项 设置。

Manifest 选项

--manifest-path path

Cargo.toml 文件的路径。默认情况下,Cargo 会在当前目录及其父目录中查找 Cargo.toml 文件。

--locked

要求所用的依赖及其版本与现有 Cargo.lock 文件生成时完全一致。出现以下任一情况时,Cargo 会报错退出:

  • 锁文件不存在。
  • Cargo 因依赖解析结果不同而试图修改锁文件。

该选项适用于需要确定性构建的环境,例如 CI 流水线。

--offline

禁止 Cargo 访问网络。若未指定此标志,当 Cargo 需要联网但网络不可用时,程序将报错停止;若指定此标志,Cargo 会在可能的情况下尝试不依赖网络继续执行。

注意,这可能导致依赖解析结果与在线模式不同。Cargo 仅会限制使用本地已下载的 crate,即使本地索引中显示存在更新版本也是如此。建议在离线前使用 cargo-fetch(1) 命令预先下载依赖。

也可以通过 net.offline 配置项 指定。

--frozen

等同于同时指定 --locked--offline

包选择

-p spec
--package spec

指定要从其中移除依赖的包。

常用选项

+toolchain

如果 Cargo 是通过 rustup 安装的,且传递给 cargo 的第一个参数以 + 开头,该参数将被解析为 rustup 工具链名称(例如 +stable+nightly)。有关工具链覆盖机制的更多信息,请参阅 rustup 文档

--config KEY=VALUEPATH

覆盖 Cargo 配置值。参数需为 KEY=VALUE 形式的 TOML 语法,或指向额外配置文件的路径。该标志可多次指定。详见命令行覆盖部分

-C PATH

在执行指定操作前更改当前工作目录。这会影响默认查找项目清单(Cargo.toml)的位置,以及搜索 .cargo/config.toml 的目录等。此选项必须位于命令名称之前,例如 cargo -C path/to/my-project build

该选项仅在nightly 渠道上可用, 且需要 -Z unstable-options 标志来启用(参见 #10098)。

-h
--help

打印帮助信息。

-Z flag

Cargo 的 unstable(仅限 nightly)标志。运行 cargo -Z help 查看详情。

环境变量

关于 Cargo 读取的环境变量详情,参见参考文档

退出状态

  • 0:Cargo 执行成功。
  • 101:Cargo 执行失败。

示例

  1. 移除 regex 依赖

    cargo remove regex
    
  2. 移除 dev-dependencies 中的 trybuild

    cargo remove --dev trybuild
    
  3. wasm32-unknown-unknown 的依赖表中移除 nom

    cargo remove --target wasm32-unknown-unknown nom
    

另见

cargo(1)cargo-add(1)

评论 (0)