第49章 Cargo 命令详解:generate-lockfile
名称
cargo-generate-lockfile — 为一个 package 生成锁文件
概要
cargo generate-lockfile [选项]
描述
该命令会为当前 package 或 workspace 创建 Cargo.lock 锁文件。如果锁文件已存在,则会重新构建,将每个 package 更新到最新的可用版本。
另请参阅 cargo-update(1),它同样可以创建 Cargo.lock 锁文件,并提供了更多控制更新行为的选项。
选项
显示选项
-v--verbose-
启用详细输出。指定两次可获得“非常详细”的输出,其中包含依赖警告、构建脚本输出等额外信息。也可以通过
term.verbose配置项 设置。 -q--quiet-
不打印 cargo 日志信息。也可以通过
term.quiet配置项 设置。 --colorwhen-
控制何时使用彩色输出。有效取值:
auto(默认):自动检测终端是否支持彩色输出。always:总是显示颜色。never:从不显示颜色。
也可以通过
term.color配置项 设置。
Manifest Options
--manifest-pathpath-
Cargo.toml文件的路径。默认情况下,Cargo 会在当前目录或任何父目录中查找Cargo.toml文件。 --ignore-rust-version-
忽略包中的
rust-version指定项。 --publish-timeyyyy-mm-ddThh:mm:ssZ-
注册表包允许的最新发布时间(不稳定特性)
这是对允许使用的包进行的一种尽力而为的过滤,具体包括:
- 来自不支持的注册表的包始终会被接受
- 仅尊重当前的 yank 状态,而非
--publish-time时间点时的状态 - 发布时间的精度
--locked-
断言所使用的依赖项及版本与最初生成现有
Cargo.lock文件时完全一致。当出现以下任一情形时,Cargo 将以错误退出:- 锁文件缺失。
- 由于依赖项解析不同,Cargo 试图修改锁文件。
此选项可用于期望确定性构建的环境,例如 CI 流水线。
--offline-
禁止 Cargo 以任何理由访问网络。若未设置此标志,当需要访问网络但网络不可用时,Cargo 将报错停止。设置此标志后,Cargo 在条件允许时会尝试在无网络状态下继续运行。
请注意,这可能导致与在线模式不同的依赖解析结果。Cargo 将局限于本地已下载的 crate,即使本地索引显示存在更新版本也是如此。请先使用 cargo-fetch(1) 命令下载依赖,然后再进入离线模式。
也可通过
net.offline配置项指定。 --frozen-
等同于同时指定
--locked和--offline。
通用选项
+toolchain-
如果 Cargo 是通过 rustup 安装的,且
cargo的第一个参数以+开头,该参数将被解析为 rustup 工具链名称(例如+stable或+nightly)。关于工具链覆盖机制的详细信息,请查阅 rustup 文档。 --configKEY=VALUE 或 PATH-
覆盖 Cargo 配置值。参数需采用
KEY=VALUE的 TOML 语法,或指定为额外配置文件的路径。此标志可多次指定。更多信息请参阅命令行覆盖部分。 -CPATH-
在执行任何指定操作前先切换当前工作目录。这会影响 Cargo 默认查找项目清单(
Cargo.toml)的位置,以及搜索.cargo/config.toml的目录等。此选项必须放在命令名之前,例如cargo -C path/to/my-project build。该选项仅在 nightly channel 上可用,且需要
-Z unstable-options标志来启用(参见 #10098)。 -h--help-
打印帮助信息。
-Zflag-
传递给 Cargo 的不稳定(仅 nightly)标志。运行
cargo -Z help查看详情。
ENVIRONMENT
Cargo 可读取的环境变量详见参考文档。
EXIT STATUS
0:Cargo 执行成功。101:Cargo 未能完成。
EXAMPLES
-
为当前包或工作区创建或更新 lockfile:
cargo generate-lockfile