cargo-update(1)
定义
cargo-update - 更新本地lock文件中记录的依赖
概要
cargo update
[options]
说明
该命令将更新 Cargo.lock
文件中的依赖到最新版本。
如果 Cargo.lock
文件不存在,将以最新的可用版本创建。
选项
更新选项
-p
spec...--package
spec...- 只更新指定的包。这个标志可以多次指定。
见 cargo-pkgid(1) 的规格格式。
如果包指定为
-p
标志, 则将对lock文件进行保守的更新。 这表述仅规格指定的依赖更新。 只有当规格版本在不更新依赖的情况下,再不能更新时,它所传递的依赖才会被更新。 所有其他的依赖将保持锁定在其当前记录的版本。如未指定
-p
, 更新所有依赖。 --aggressive
- 当使用
-p
, 规格版本的依赖强制更新。 不能和--precise
使用。 --precise
precise- 当使用
-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
配置。 --color
when- 使用彩色输出。有效值:
auto
(默认):自动检测终端是否支持彩色。always
: 总是显示彩色。never
: 总不显示彩色。
也可以用
term.color
配置。
配置选项
--manifest-path
pathCargo.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 文档 了解关于工具链覆盖的信息。 --config
KEY=VALUE or PATH- 覆盖Cargo配置项的值,该参数应当为TOML
KEY=VALUE
语法, 或者提供附加的配置文件的路径。该标识可以多次指定。 查阅 命令行覆盖部分 获取更多信息 -h
--help
- 打印帮助信息。
-Z
flag- 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