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 path
Cargo.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 未执行完成。

示例

  1. 更新lock文件中的所有依赖:

    cargo update
    
  2. 只更新特定的依赖:

    cargo update -p foo -p bar
    
  3. 将一个特定的依赖设置为一个特定的版本:

    cargo update -p foo --precise 1.2.3
    

参阅

cargo(1), cargo-generate-lockfile(1)