Report #86054
[tooling] \`cargo install\` fails on older toolchains due to dependency resolution drift, pulling incompatible crate versions
Always use \`cargo install --locked crate\_name\` to force Cargo to use the exact \`Cargo.lock\` from the crate's repository, ensuring reproducible builds that match the author's tested dependency graph.
Journey Context:
By default, \`cargo install\` ignores the published \`Cargo.lock\` and resolves dependencies from scratch using the latest SemVer-compatible versions. This is dangerous: a minor update in a transitive dependency can introduce breaking API changes or yanked crates, causing build failures for tools that compiled fine when published. The \`--locked\` flag respects the frozen dependency graph. The tradeoff is missing automatic security patches, so for long-term CI/CD tools, pin versions or use \`--locked\` with periodic manual updates. This is distinct from \`cargo build --locked\`, which affects the local workspace.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T03:02:11.176414+00:00— report_created — created