07-cargo fetch
3 分钟阅读
译文 · 基于 The Cargo Book
cargo-fetch(1)
原文链接: https://doc.rust-lang.org/cargo/commands/cargo-fetch.html
名称
cargo-fetch — 从网络获取包的依赖
大纲
cargo fetch [options]
描述
若存在 Cargo.lock 文件,此命令将确保所有 git 依赖和/或注册表依赖均已下载并可在本地使用。在 cargo fetch 之后,除非锁文件发生变化,后续 Cargo 命令可离线运行。
若锁文件不可用,则此命令会在获取依赖之前先生成锁文件。
若未指定 --target,则获取所有目标架构的依赖。
选项
Fetch 选项
--targettriple为指定的目标架构获取依赖。此标志可指定多次。默认为所有架构。triple 的一般格式为
<arch><sub>-<vendor>-<sys>-<abi>。可能的值:
rustc --print target-list中任何受支持的目标。"host-tuple",内部会替换为主机目标。若你在交叉编译某些 crate,又不想把主机机器指定为目标(例如可能由多台主机协作的共享项目中的xtask),这会特别有用。- 自定义目标规范的路径。更多信息见 自定义目标查找路径。
也可通过
build.target配置值 指定。注意:指定此标志会使 Cargo 以不同模式运行,目标产物会放在单独目录中。详情见 构建缓存文档。
显示选项
-v--verbose使用详细输出。可指定两次以获得「非常详细」的输出,其中包括依赖警告与构建脚本输出等额外信息。 也可通过
term.verbose配置值 指定。-q--quiet不打印 cargo 日志消息。 也可通过
term.quiet配置值 指定。--colorwhen控制何时使用彩色输出。有效值:
auto(默认):自动检测终端是否支持颜色。always:始终显示颜色。never:从不显示颜色。
也可通过
term.color配置值 指定。
Manifest 选项
--manifest-pathpathCargo.toml文件的路径。默认情况下,Cargo 会在当前目录或其任意父目录中搜索Cargo.toml。--locked断言使用与生成现有
Cargo.lock文件时完全相同的依赖与版本。出现以下任一情况时,Cargo 将以错误退出:- 缺少锁文件。
- 由于依赖解析不同,Cargo 试图更改锁文件。
可用于需要确定性构建的环境,例如 CI 流水线。
--offline禁止 Cargo 因任何原因访问网络。若未指定此标志,当 Cargo 需要访问网络而网络不可用时会以错误停止。指定此标志后,Cargo 会在可能的情况下尝试在无网络时继续。
注意:这可能导致与在线模式不同的依赖解析结果。Cargo 将仅使用本地已下载的 crate,即使本地索引副本表明可能有更新版本。
也可通过
net.offline配置值 指定。--frozen等价于同时指定
--locked与--offline。
通用选项
+toolchain若 Cargo 通过 rustup 安装,且传给
cargo的第一个参数以+开头,则会被解释为 rustup 工具链名称(例如+stable或+nightly)。 关于工具链覆盖的工作方式,请参阅 rustup 文档。--configKEY=VALUE or PATH覆盖 Cargo 配置值。参数应为 TOML 语法的
KEY=VALUE,或指向额外配置文件的路径。此标志可指定多次。 更多信息见 命令行覆盖一节。-CPATH在执行任何指定操作之前更改当前工作目录。这会影响诸如 Cargo 默认查找项目清单(
Cargo.toml)的位置,以及用于发现.cargo/config.toml的目录搜索等。此选项必须出现在命令名之前,例如cargo -C path/to/my-project build。此选项仅在 nightly 通道 可用, 并需要
-Z unstable-options标志才能启用(见 #10098)。-h--help打印帮助信息。
-ZflagCargo 的不稳定(仅 nightly)标志。运行
cargo -Z help查看详情。
环境变量
参见参考文档了解 Cargo 读取的环境变量详情。
退出状态
0:Cargo 成功完成。101:Cargo 未能完成。
示例
获取所有依赖:
cargo fetch