我试图强行安装cargo-sort
cargo install --force cargo-sort
Run Code Online (Sandbox Code Playgroud)
然而,它抱怨
error: failed to compile `cargo-sort v1.0.9`, intermediate artifacts can be found at `/var/folders/2q/sfkj3vg13z175flb8j9znf9w0000gn/T/cargo-installJcyWnG`
Caused by:
package `clap_builder v4.4.0` cannot be built because it requires rustc 1.70.0 or newer, while the currently active rustc version is 1.67.0-nightly
Try re-running cargo install with `--locked
Run Code Online (Sandbox Code Playgroud)
我的 Rust 工具链是
nightly-2022-11-15-x86_64-apple-darwin (override)
Run Code Online (Sandbox Code Playgroud)
因为它建议我使用--locked. 所以我用
cargo install --force --locked cargo-sort
Run Code Online (Sandbox Code Playgroud)
有效。
我的 Cargo.lock 是https://github.com/pingcap/tidb-engine-ext/blob/raftstore-proxy/Cargo.lock。
从 rust 的文档中,我知道--locked意味着使用 Cargo.lock 中所需的版本。clap_builder但是,我发现我的 Cargo.lock 中没有任何条目。
我的问题是为什么--locked可以工作?我认为 Cargo.lock 没有做出任何贡献。
\n\n从 rust 的文档
\n--locked中,我知道意味着使用Cargo.lock. 但是,我发现我的 .txt 文件中没有关于 clap_builder 的条目Cargo.lock。
在 的情况下cargo install,使用的锁定文件是您正在安装的软件包( cargo-sort) 中的文件。cargo install根本不与当前目录中的包交互,除非您要求它安装该包。
您可以使用 docs.rs 查看版本的锁定文件cargo-sort1.0.9,它没有相应的条目clap_builder,但这是因为clap该文件中的旧版本根本不使用clap_builder。
话虽如此,您可能应该更新 Rust 工具链,并stable使用nightly; 那么你就不需要了,--locked因为你将能够构建最新的包clap和其他包。除非需要,否则使用夜间编译器构建任何东西都是不明智的, \xe2\x80\x94 nightlies 可能有严重的错误。
如果你想继续使用 nightly 进行开发,你可以通过询问来安装 stable:
\ncargo +stable install cargo-sort\nRun Code Online (Sandbox Code Playgroud)\n