cargo-update TravisCI build status AppVeyorCI build status Licence Crates.io version

A cargo subcommand for checking and applying updates to installed executables

Documentation

Manpage

Installation

Firstly, ensure you have CMake and the Required Libraries™.

Then proceed as usual:

shell cargo install cargo-update

If that doesn't work and you're on Mac: * re-try with PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig, * install OpenSSL via brew, and re-try with LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" CPPFLAGS="-I/usr/local/opt/openssl@1.1/include", * verify that you don't openssl installed twice via brew,

If it still doesn't work, slam open an issue or comment on one of the existing relevant ones.

Required libraries

| Library | *X package name | msys2 package name | |-----------------------------------------|------------------|----------------------------| | libgit2 | libgit2-devel | mingw-w64-x86_64-libgit2 | | libssh2 | libssh2-devel | mingw-w64-x86_64-libssh2 | | openssl | openssl-devel | mingw-w64-x86_64-openssl |

Usage

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.

Self-update

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 install will "replace" it and not duplicate the entry in .crates.toml)

Troubleshooting

Some crates, like clippy and rustfmt, have moved from Crates.io to being a rustup component. 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 cargo install, 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 rustup ones.

Special thanks

To all who support further development on Patreon, in particular: