cargo update为什么要更新锁文件

问题描述 投票:0回答:2

我无法理解

cargo update
的作用,并且我发现文档不一致。

https://doc.rust-lang.org/cargo/commands/cargo-update.html

实际上它说:

  • “名称:更新本地锁定文件中记录的依赖项”,我猜cargo.lock只是从中读取的
  • “描述:此命令会将 Cargo.lock 文件中的依赖项更新到最新版本。如果 Cargo.lock 文件不存在,则会使用最新的可用版本创建它。”我猜它会
  • writeCargo.lock。但如何、根据哪些规则,我不确定
rust-cargo
2个回答
0
投票
不熟悉 Rust,但我使用过一些包管理器。

通常您可以采取三种方法:

    类似于
  1. cargo install
    ,直接使用锁定文件而不进行更改来安装依赖项。然而,在依赖冲突的情况下,这可能会失败。
  2. 类似
  3. cargo update
     的东西会更新所有依赖项以尝试使用最新版本。很少推荐这样做,因为它很容易破坏现有的应用程序。仅当您有非常好的测试套件或愿意进行大量手动测试时才使用它。
  4. 类似于
  5. cargo update xyz
     来更新特定的依赖项(在本例中为 
    xyz
    )。这通常是推荐的方法,您应该尽量减少以这种方式更新的依赖项的数量,通常您可以执行类似 
    cargo update abc pqr xyz
     的操作来更新这三个依赖项。这通常是推荐的方式。
基本上,如果你运行#1失败,它会说明哪些依赖项 有问题,然后您在这些特定的问题上运行

cargo update ...

依赖关系。


0
投票
文档需要更新。

cargo update

 将更新依赖项的次要版本和补丁版本,即只要您的依赖项遵守 semver,就可以更新所有内容,而不会引入重大更改。

还有

cargo upgrade

,即使它升级了主要版本,它也会升级依赖项,并且您必须修复一些重大更改。

© www.soinside.com 2019 - 2024. All rights reserved.