cargo-update alternatives and similar packages
Based on the "Cargo" category.
Alternatively, view cargo-update alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of cargo-update or a related project?
cargo subcommand for checking and applying updates to installed executables
Then proceed as usual:
cargo install cargo-update
If that doesn't work:
- re-try with
- re-try with
- install OpenSSL via
brew, and re-try with
LDFLAGS="-L/usr/local/opt/[email protected]/lib" CPPFLAGS="-I/usr/local/opt/[email protected]/include",
- verify that you don't
opensslinstalled twice via
- re-try with
|Library||*X package name||msys2 package name|
cargo install-update -a - check for newer versions and update all installed packages.
cargo install-update crate1 crate2 ... - check for newer versions and update selected packages, will not install new packages.
For more information and examples see the manpage.
cargo-update will update itself seamlessly on Linux and Windows.
On Windows the following strategy is applied:
- Check for old versions, remove them
- Add the current version to the current executable's extension
- Create an empty file in place of the just-renamed file (this way
cargo installwill "replace" it and not duplicate the entry in
Some crates, like
rustfmt, have moved from Crates.io to being a
If you'd installed them beforehand, then added them via
rustup component, they might not have been removed from the list of crates installed via
and you might come across errors such as
$ cargo install-update -a Updating registry 'https://github.com/rust-lang/crates.io-index' Package Installed Latest Needs update clippy v0.0.179 v0.0.302 Yes ..... Updating clippy Updating crates.io index Installing clippy v0.0.302 Compiling clippy v0.0.302 error: failed to compile `clippy v0.0.302`, intermediate artifacts can be found at `/tmp/cargo-installxHfj2y` Caused by: failed to run custom build command for `clippy v0.0.302` Caused by: process didn't exit successfully: `/tmp/cargo-installxHfj2y/release/build/clippy-ffeedc2f188020a4/build-script-build` (exit code: 1) --- stderr error: Clippy is no longer available via crates.io help: please run `rustup component add clippy-preview` instead
In that case, run
cargo install --list to verify that they're still there and
cargo uninstall them,
which will deregister the
cargo versions and leave you with the
cargo install cratename checks for newer versions and installs them if they exist, instead of erroring out like it does usually.
Source Replacement vs custom registries
Cargo allows replacing entire registries at a time.
For example, this stanza in
~/.cargo/config will replace the default crates.io registry with the Shanghai Jiao Tong Universty's mirror:
[source.crates-io] replace-with = "sjtu" [source.sjtu] registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
cargo-update resolves this to the deepest registry, and passes
--registry sjtu to
This worked until roughly
nightly-2019-08-10, but since
nightly-2019-09-10 due to a Cargo regression (or feature, but it's breaking without a major version bump, so)
--registry looks into a different key, requiring this additional stanza to ensure correct updates:
[registries.sjtu] index = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
Confer the initial implementation, rewrite, final broken testcase and final debug implementation threads (h/t @DCJanus for help debugging and testcases, also dealing with me as I slowly spiraled into insanity).
To all who support further development on Patreon, in particular:
- Embark Studios
*Note that all licence references and agreements mentioned in the cargo-update README section above are relevant to that project's source code only.