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

第40章 Cargo Fetch:离线获取包依赖指南

名称

cargo-fetch — 从网络获取包的依赖

概要

cargo fetch [选项]

描述

如果存在 Cargo.lock 文件,该命令会确保所有 git 依赖和 registry 依赖都已下载并在本地可用。执行过 cargo fetch 之后,后续的 Cargo 命令就可以离线运行,除非 lock 文件发生了变化。

如果 lock 文件不存在,该命令会先生成 lock 文件,再获取依赖。

如果没有指定 --target,则会获取所有目标平台的依赖。

另可参考 cargo-prefetch 插件,它提供了一个下载热门 crate 的命令。如果你打算配合 --offline 标志在无网络环境下使用 Cargo,这会很有用。

选项

获取选项

--target triple

为指定的目标架构获取依赖。该标志可以多次指定,默认获取所有架构。triple 的一般格式为 <arch><sub>-<vendor>-<sys>-<abi>

可选值:

  • rustc --print target-list 列出的任何受支持目标。
  • "host-tuple",内部会被替换为主机的目标平台。在交叉编译部分 crate、又不想把主机机器单独指定为目标时特别有用(例如共享项目中的 xtask,可能由许多不同的主机参与开发)。
  • 自定义目标规格文件的路径。详见 Custom Target Lookup Path

也可以通过 build.target 配置项 来指定。

注意,指定此标志后,Cargo 会以另一种模式运行,目标产物会被放到单独的目录中。详见 build cache 文档。

显示选项

-v
--verbose

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

-q
--quiet

不打印 Cargo 日志消息。 也可通过 term.quiet 配置项来指定。

--color when

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

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

也可通过 term.color 配置项来指定。

Manifest Options

--manifest-path path

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

--locked

断言使用的依赖项及其版本与最初生成 Cargo.lock 文件时完全相同。当出现以下任一情况时,Cargo 将返回错误并退出:

  • 缺少锁定文件。
  • Cargo 因依赖解析结果不同而尝试修改锁定文件。

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

--offline

阻止 Cargo 因任何原因访问网络。若无此标志,当需要访问网络但网络不可用时,Cargo 将报错并停止。加上此标志后,Cargo 将在可能的情况下尝试在无网络环境中继续执行。

注意,这可能导致与在线模式不同的依赖解析结果。Cargo 将局限于本地已下载的 crates,即使本地索引副本中显示有更新版本也会如此。

也可通过 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 channel 上可用,且需要 -Z unstable-options 标志来启用(参见 #10098)。

-h
--help

打印帮助信息。

-Z flag

传递给 Cargo 的不稳定(仅 nightly)标志。运行 cargo -Z help 查看详情。

环境变量

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

退出状态

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

示例

  1. 拉取所有依赖:

    cargo fetch
    

另请参阅

cargo(1)cargo-update(1)cargo-generate-lockfile(1)

评论 (0)