为何使用cargo install安装cargo-sort时--locked参数能生效?
为什么
cargo install --locked能成功安装cargo-sort? 你混淆了--locked参数的作用对象:它使用的是你要安装的目标 crate(这里是cargo-sort)自身发布时附带的Cargo.lock文件,而不是你本地项目(tidb-engine-ext)的Cargo.lock。
具体原因拆解:
- 不带
--locked执行cargo install时,Cargo会按照cargo-sort的Cargo.toml依赖规则,拉取所有依赖的最新兼容版本。这次它拉到了clap_builder v4.4.0,这个版本要求rustc 1.70.0+,但你的工具链是1.67.0-nightly,版本不兼容导致编译失败。 - 加上
--locked后,Cargo会严格遵循cargo-sort v1.0.9发布时锁定的依赖版本。这些版本是cargo-sort开发者发布该版本时验证过的,必然和当时的Rust版本(包括你的1.67 nightly)兼容,所以能顺利编译安装。
你本地项目的Cargo.lock和这次安装完全无关,自然找不到clap_builder的条目——它只存在于cargo-sort自身的锁文件里。
内容的提问来源于stack exchange,提问作者calvin
相关产品推荐
相关产品推荐

