cargo-update(1)
定义
cargo-update - 更新本地lock文件中记录的依赖
概要
cargo update [options]
说明
该命令将更新 Cargo.lock 文件中的依赖到最新版本。
如果 Cargo.lock 文件不存在,将以最新的可用版本创建。
选项
更新选项
-pspec...--packagespec...- 只更新指定的包。这个标志可以多次指定。
见 cargo-pkgid(1) 的规格格式。
如果包指定为
-p标志, 则将对lock文件进行保守的更新。 这表述仅规格指定的依赖更新。 只有当规格版本在不更新依赖的情况下,再不能更新时,它所传递的依赖才会被更新。 所有其他的依赖将保持锁定在其当前记录的版本。如未指定
-p, 更新所有依赖。 --aggressive- 当使用
-p, 规格版本的依赖强制更新。 不能和--precise使用。 --preciseprecise- 当使用
-p, 允许指定特定版本号的包。如果包来自git仓库,可以是一个git版本(比如SHA哈希或tag)。 -w--workspace- 尝试只更新工作空间中定义的包。
其他包只有在lock文件中不存在时才会更新。
这个选项对于在
Cargo.toml中改变版本号后更新Cargo.lock很有用。 --dry-run- 显示将更新内容,实际并未写入lock文件。
Display Options
-v--verbose- 进行详细输出。可以指定两次来开启 "非常详细" ,输出更多的额外信息,像是依赖项的警告和构建脚本的输出信息。
也可以通过
term.verbose配置。 -q--quiet- 不打印 cargo 日志信息。
也可以用
term.quiet配置。 --colorwhen- 使用彩色输出。有效值:
auto(默认):自动检测终端是否支持彩色。always: 总是显示彩色。never: 总不显示彩色。
也可以用
term.color配置。
配置选项
--manifest-pathpathCargo.toml文件路径。 默认情况下,Cargo会在当前目录或任何父目录下搜索Cargo.toml文件。--frozen--locked- 这些标志都要求
Cargo.lock文件是最新的。 如果lock文件丢失, 或是需要更新, Cargo会返回错误并退出,--frozen选项还会阻止cargo通过网络来判断其是否过期。可以用于断言
Cargo.lock文件是否最新状态(例如CI构建)或避免网络访问。 --offline- 阻止Cargo访问网络。如果不指定该选项,Cargo会在需要使用网络但不可用时停止构建并返回错误。设置该标识,Cargo将尽可能不使用网络完成构建。
需注意,这样可能会导致与在线模式不同的依赖处理,Cargo将限制仅使用已下载到本地的crate,即使本地索引中有更新版本。 查阅 cargo-fetch(1) 命令,在脱机前下载依赖。
也可以用
net.offline配置。
常规选项
+toolchain- 如果Cargo已经通过rustup安装,并且第一个传给
cargo的参数以+开头, 则当作rustup的工具链名称。(例如+stable或+nightly). 查阅 rustup 文档 了解关于工具链覆盖的信息。 --configKEY=VALUE or PATH- 覆盖Cargo配置项的值,该参数应当为TOML
KEY=VALUE语法, 或者提供附加的配置文件的路径。该标识可以多次指定。 查阅 命令行覆盖部分 获取更多信息 -h--help- 打印帮助信息。
-Zflag- Cargo不稳定的(每日构建)标志。运行
cargo -Z help了解详情。
环境
查阅 参考 了解Cargo读取环境变量。
退出状态
0: Cargo 执行成功。101: Cargo 未执行完成。
示例
-
更新lock文件中的所有依赖:
cargo update -
只更新特定的依赖:
cargo update -p foo -p bar -
将一个特定的依赖设置为一个特定的版本:
cargo update -p foo --precise 1.2.3