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

第50章 cargo info 命令详解

名称

cargo-info — 显示包的信息。

概要

cargo info [选项] spec

描述

该命令用于显示包的信息。它会从包的 Cargo.toml 文件中获取数据,并以人类可读的格式呈现。

选项

Info 选项

spec

获取指定包的信息。spec 可以是包 ID,有关 SPEC 格式的说明请参考 cargo-pkgid(1)。 如果指定的包属于当前工作区,则显示本地 Cargo.toml 文件中的信息。 如果 Cargo.lock 文件不存在,系统会创建它。如果没有指定版本,将基于最低支持 Rust 版本(MSRV)选择合适的版本。

--index index

要使用的注册表索引的 URL。

--registry registry

要使用的注册表名称。注册表名称在 Cargo 配置文件 中定义。 如果未指定,则使用默认注册表,该默认值由 registry.default 配置项决定,其默认值为 crates-io

显示选项

-v
--verbose

使用详细输出。可以指定两次以获取“非常详细”的输出,其中包括依赖项警告和构建脚本输出等额外信息。 也可以与 term.verbose 配置值 一起使用。

-q
--quiet

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

--color when

控制何时使用彩色输出。可选值:

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

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

Manifest 选项

--locked

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

  • lock 文件缺失。
  • 由于依赖解析结果不同,Cargo 试图修改 lock 文件。

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

--offline

禁止 Cargo 以任何原因访问网络。不使用此标志时,如果 Cargo 需要访问网络而网络不可用,会直接报错终止;使用此标志后,Cargo 会尽可能在没有网络的情况下继续运行。

注意,离线模式的依赖解析结果可能与在线模式不同。Cargo 会限制只使用本地已下载的 crates,即使本地索引显示存在新版本也是如此。如需在离线前预下载依赖,请参阅 cargo-fetch(1) 命令。

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

--frozen

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

通用选项

+toolchain

若 Cargo 是通过 rustup 安装的,且 cargo 的第一个参数以 + 开头,该参数将被视为 rustup 工具链名称(如 +stable+nightly)。有关工具链覆盖机制的详细信息,请参阅 rustup 文档

--config KEY=VALUEPATH

用于覆盖 Cargo 的配置项。参数需采用 KEY=VALUE 的 TOML 语法,或者提供额外配置文件的路径。此选项可多次指定。更多信息请参阅命令行覆盖章节

-C PATH

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

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

-h
--help

打印帮助信息。

-Z flag

Cargo 的不稳定标志(仅限 nightly 版本)。运行 cargo -Z help 查看详情。

环境变量

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

退出状态

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

示例

  1. 查看 crates.io 上的 serde 包:

     cargo info serde
    
  2. 查看版本为 1.0.0serde 包:

     cargo info serde@1.0.0
    
  3. 查看本地注册表中的 serde 包:

     cargo info serde --registry my-registry
    

另请参阅

cargo(1), cargo-search(1)

评论 (0)