A cargo subcommand for checking and applying updates to installed executables

Overview

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:

cargo install cargo-update

If that doesn't work:

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.

Bleeding-edge cargos

Since 0.42.0, 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 cargo install. 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).

Special thanks

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

  • ThePhD
  • Embark Studios
Comments
  • 'unknown error occurred': It implicitly requires to be run as Administrator on Windows

    'unknown error occurred': It implicitly requires to be run as Administrator on Windows

    C:\Users\liigo>cargo install-update
    error: An unknown error occurred
    
    To learn more, run the command again with --verbose.
    
    C:\Users\liigo>cargo install-update --verbose
    error: An unknown error occurred
    
    To learn more, run the command again with --verbose.
    

    If run it as administrator, it works.


    Update: to know the reason and workaround, see comments after this

    help wanted question 
    opened by liigo 30
  • Fails to build on windows-gnu

    Fails to build on windows-gnu

    Attempting to install fails with a vague error.

    PS C:\Users\seekr> rustup show
    Default host: x86_64-pc-windows-gnu
    
    nightly-x86_64-pc-windows-gnu (default)
    rustc 1.19.0-nightly (557967766 2017-05-26)
    PS C:\Users\seekr> cargo install cargo-update
        Updating registry `https://github.com/rust-lang/crates.io-index`
      Installing cargo-update v1.0.0
       Compiling unicode-xid v0.0.4
       Compiling unicode-width v0.1.4
       Compiling winapi-build v0.1.1
       Compiling bitflags v0.8.2
       Compiling array_tool v0.3.5
       Compiling regex-syntax v0.4.1
       Compiling pkg-config v0.3.9
       Compiling ansi_term v0.9.0
       Compiling vec_map v0.8.0
       Compiling unicode-normalization v0.1.4
       Compiling quote v0.3.15
       Compiling kernel32-sys v0.2.2
       Compiling strsim v0.6.0
       Compiling synom v0.11.3
       Compiling json v0.11.6
       Compiling utf8-ranges v1.0.0
       Compiling unicode-segmentation v1.2.0
       Compiling serde v1.0.8
       Compiling syn v0.11.11
       Compiling gcc v0.3.49
       Compiling tabwriter v1.0.3
       Compiling winapi v0.2.8
       Compiling embed-resource v1.1.1
       Compiling libc v0.2.23
       Compiling cargo-update v1.0.0
       Compiling rand v0.3.15
    error: failed to run custom build command for `cargo-update v1.0.0`
    process didn't exit successfully: `C:\Users\seekr\AppData\Local\Temp\cargo-install.ZgXCbqjBSiUy\release\build\cargo-update-87b2aa30f3df4201\build-script-build` (exit code: 101)
    --- stderr
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 2, message: "The system cannot find the file specified." } }', src\libcore\result.rs:859
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    
    Build failed, waiting for other jobs to finish...
    error: failed to compile `cargo-update v1.0.0`, intermediate artifacts can be found at `C:\Users\seekr\AppData\Local\Temp\cargo-install.ZgXCbqjBSiUy`
    
    Caused by:
      build failed
    
    question 
    opened by Seeker14491 29
  • Not enough information on broken git repos

    Not enough information on broken git repos

    When I run cargo install-update --git --all I get

    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { code: -1, klass: 4, message: "corrupted loose reference file: FETCH_HEAD" }', /home/traxys/.cargo/registry/src/github.com-1ecc6299db9ec823/cargo-update-4.0.0/src/ops/mod.rs:449:13
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    

    This does not indicate to me at all where is the problem so that I could try to fix it, couldn't there be a bit more diagnostic there ?

    enhancement 
    opened by traxys 20
  • Incompatible with upcoming bare Cargo registry

    Incompatible with upcoming bare Cargo registry

    rust-lang/cargo#4026 introduced local registry without checkout, and this tool doesn't work since it relies on registry directory structure.

    The old format isn't compatible with the new format at all, so choose one:

    • port and branch the code
    • use the system Cargo executable to query them
    • link to Cargo (bad buildtime)
    • directly query crates.io (used by cargo-edit)
    enhancement question external 
    opened by ishitatsuyuki 19
  • Follow install.root

    Follow install.root

    cargo install-update -l -a simply finds no packages for me. I suspect it fails to read the ~/.cargo/config where the installation directory is redirected to where it is supposed to be:

    [install]
    root = "/home/me/.local"
    
    enhancement 
    opened by jan-hudec 18
  • Updating using keepassxc ssh-agent

    Updating using keepassxc ssh-agent

    I'm using the keepassxc ssh-agent function and it works with ssh, git and cargo install, but with cargo install-update i get the following error when doing cargo install-update -ga:

    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { code: -1, klass: 0, message: "
    no authentication available" }', src/libcore/result.rs:999:5
    

    backtrace:

    stack backtrace:
       0:     0x55d264fbc7eb - backtrace::backtrace::libunwind::trace::hfe5db90796807973
                                   at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
       1:     0x55d264fbc7eb - backtrace::backtrace::trace_unsynchronized::h34b865a835594335
                                   at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
       2:     0x55d264fbc7eb - std::sys_common::backtrace::_print::h527254ae44989167
                                   at src/libstd/sys_common/backtrace.rs:47
       3:     0x55d264fbc7eb - std::sys_common::backtrace::print::he85dd5ddddf46503
                                   at src/libstd/sys_common/backtrace.rs:36
       4:     0x55d264fbc7eb - std::panicking::default_hook::{{closure}}::h847a2eb38b396f14
                                   at src/libstd/panicking.rs:200
       5:     0x55d264fbc4c7 - std::panicking::default_hook::h2ca0f9a30a0e206b
                                   at src/libstd/panicking.rs:214
       6:     0x55d264fbcf60 - std::panicking::rust_panic_with_hook::hffcefc09751839d1
                                   at src/libstd/panicking.rs:477
       7:     0x55d264fbcae2 - std::panicking::continue_panic_fmt::hc0f142c930c846fc
                                   at src/libstd/panicking.rs:384
       8:     0x55d264fbc9c6 - rust_begin_unwind
                                   at src/libstd/panicking.rs:311
       9:     0x55d264fdb97d - core::panicking::panic_fmt::h2daf88b2616ca2b2
                                   at src/libcore/panicking.rs:85
      10:     0x55d264d7c1be - core::result::unwrap_failed::h834722eb63104a22
      11:     0x55d264d8fff3 - cargo_update::ops::with_authentication::{{closure}}::h3ce01db401f9020a
      12:     0x55d264db75f1 - cargo_update::ops::GitRepoPackage::pull_version_impl::{{closure}}::{{closure}}::heb1dbb48c1005603
      13:     0x55d264e38b25 - std::panicking::try::do_call::he3f7290af8589bcd
      14:     0x55d264fc3b7a - __rust_maybe_catch_panic
                                   at src/libpanic_unwind/lib.rs:82
      15:     0x55d264e37423 - git2::panic::wrap::h7893a882ee8fb1b6
      16:     0x55d264e3bd3e - git2::remote_callbacks::credentials_cb::h76b2c3b8a1e220e0
      17:     0x55d264ebd9df - request_creds.isra.0
      18:     0x55d264ebe90e - _git_ssh_setup_conn
      19:     0x55d264edcca0 - git_smart__connect
      20:     0x55d264e9cb00 - git_remote__connect
      21:     0x55d264e9e1eb - git_remote_fetch
      22:     0x55d264e31c3c - git2::remote::Remote::fetch::h25706383f7087232
      23:     0x55d264d8b6b4 - cargo_update::ops::GitRepoPackage::pull_version_impl::h1ea7995748ddfb1d
      24:     0x55d264d74789 - cargo_install_update::actual_main::h3a05c3cde10e6a7a
      25:     0x55d264d72a66 - cargo_install_update::main::h56b00bac1584b9e8
      26:     0x55d264d6e6e3 - std::rt::lang_start::{{closure}}::hc3c6f18673592973
      27:     0x55d264fbc963 - std::rt::lang_start_internal::{{closure}}::h447d8812e3ee306d
                                   at src/libstd/rt.rs:49
      28:     0x55d264fbc963 - std::panicking::try::do_call::h4a61cb372364c745
                                   at src/libstd/panicking.rs:296
      29:     0x55d264fc3b7a - __rust_maybe_catch_panic
                                   at src/libpanic_unwind/lib.rs:82
      30:     0x55d264fbd46d - std::panicking::try::hdf71f938885bca42
                                   at src/libstd/panicking.rs:275
      31:     0x55d264fbd46d - std::panic::catch_unwind::h7e85dbf162b1611a
                                   at src/libstd/panic.rs:394
      32:     0x55d264fbd46d - std::rt::lang_start_internal::h1e06cc26b9fc25ea
                                   at src/libstd/rt.rs:48
      33:     0x55d264d76072 - main
      34:     0x7f7974277ee3 - __libc_start_main
      35:     0x55d264d6b28e - _start
      36:                0x0 - <unknown>
    thread 'main' panicked at 'Box<Any>', /home/bernhard/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/git2-0.10.1/src/panic.rs:27:9
    stack backtrace:
       0:     0x55d264fbc7eb - backtrace::backtrace::libunwind::trace::hfe5db90796807973
                                   at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
       1:     0x55d264fbc7eb - backtrace::backtrace::trace_unsynchronized::h34b865a835594335
                                   at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
       2:     0x55d264fbc7eb - std::sys_common::backtrace::_print::h527254ae44989167
                                   at src/libstd/sys_common/backtrace.rs:47
       3:     0x55d264fbc7eb - std::sys_common::backtrace::print::he85dd5ddddf46503
                                   at src/libstd/sys_common/backtrace.rs:36
       4:     0x55d264fbc7eb - std::panicking::default_hook::{{closure}}::h847a2eb38b396f14
                                   at src/libstd/panicking.rs:200
       5:     0x55d264fbc4c7 - std::panicking::default_hook::h2ca0f9a30a0e206b
                                   at src/libstd/panicking.rs:214
       6:     0x55d264fbcf60 - std::panicking::rust_panic_with_hook::hffcefc09751839d1
                                   at src/libstd/panicking.rs:477
       7:     0x55d264e38533 - std::panicking::begin_panic::h81f6d2791698b7e4
       8:     0x55d264e31e85 - git2::remote::Remote::fetch::h25706383f7087232
       9:     0x55d264d8b6b4 - cargo_update::ops::GitRepoPackage::pull_version_impl::h1ea7995748ddfb1d
      10:     0x55d264d74789 - cargo_install_update::actual_main::h3a05c3cde10e6a7a
      11:     0x55d264d72a66 - cargo_install_update::main::h56b00bac1584b9e8
      12:     0x55d264d6e6e3 - std::rt::lang_start::{{closure}}::hc3c6f18673592973
      13:     0x55d264fbc963 - std::rt::lang_start_internal::{{closure}}::h447d8812e3ee306d
                                   at src/libstd/rt.rs:49
      14:     0x55d264fbc963 - std::panicking::try::do_call::h4a61cb372364c745
                                   at src/libstd/panicking.rs:296
      15:     0x55d264fc3b7a - __rust_maybe_catch_panic
                                   at src/libpanic_unwind/lib.rs:82
      16:     0x55d264fbd46d - std::panicking::try::hdf71f938885bca42
                                   at src/libstd/panicking.rs:275
      17:     0x55d264fbd46d - std::panic::catch_unwind::h7e85dbf162b1611a
                                   at src/libstd/panic.rs:394
      18:     0x55d264fbd46d - std::rt::lang_start_internal::h1e06cc26b9fc25ea
                                   at src/libstd/rt.rs:48
      19:     0x55d264d76072 - main
      20:     0x7f7974277ee3 - __libc_start_main
      21:     0x55d264d6b28e - _start
      22:                0x0 - <unknown>
    

    Edit: I'm using cargo install --git ssh://gitlab.com/nycex/someprivateproject --force to install the packages

    bug 
    opened by nycex 16
  • Rename `cargo-install-update-config` to `...-configure`

    Rename `cargo-install-update-config` to `...-configure`

    Hi, thanks for this great cargo command!

    One thing bugs me, the installed executables being in the path, the name cargo-install-update-config can be picked as a pkg-config. Some sanity checkers like brew doctor pick this everytime.

    Would you consider renaming it to cargo-install-update-configure or something alike? I don't think it would break anything as we don't call it directly.

    Thanks in advance!

    question tracking 
    opened by bosr 15
  • Update fails when a package is installed from a custom registry

    Update fails when a package is installed from a custom registry

    I have a binary which is installed from a custom registry. Now cargo install-update -l or cargo install-update -a fails with

        Updating registry 'https://github.com/rust-lang/crates.io-index'
    
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "package ... not found"', src/libcore/result.rs:1188:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    

    Is there a way to search all configured registries or maybe even just skip the failed packages?

    enhancement 
    opened by SolidTux 15
  • Passing flags to cargo

    Passing flags to cargo

    Hi, I'm trying to pass flags to cargo when using this crate but it doesn't seem to register. i.e: cargo install-update --all -- --target x86_64-unknown-linux-gnu --verbose looks regular and doesn't pass the verbose flag to cargo

    enhancement question 
    opened by elichai 15
  • Deprecated binary leads to update loop.

    Deprecated binary leads to update loop.

    cargo-edit released v0.2.0 following v0.1.6. The new version deprecates the binary cargo-list. So .crates.toml now contains:

    "cargo-edit 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-list"]
    "cargo-edit 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-add", "cargo-rm", "cargo-upgrade"]
    

    which if I run cargo install-update -al leads to:

    Package         Installed  Latest    Needs update
    cargo-edit      v0.1.6     v0.2.0    Yes
    cargo-edit      v0.2.0     v0.2.0    No
    

    cargo install-update cargo-edit will compile and install cargo-edit v0.2.0 again and again instead of saying No packages need updating..

    enhancement 
    opened by letheed 15
  • Unable to install

    Unable to install

    First, I got an error that cmake was not installed. I installed cmake and then I get the following error

    running: "cmake" "--build" "." "--target" "install" "--config" "Release" "--" "-j8"
    Scanning dependencies of target libssh2
    [  9%] [  9%] [ 14%] [ 19%] [ 23%] Building C object src/CMakeFiles/libssh2.dir/agent.c.o
    Building C object src/CMakeFiles/libssh2.dir/comp.c.o
    Building C object src/CMakeFiles/libssh2.dir/channel.c.o
    Building C object src/CMakeFiles/libssh2.dir/openssl.c.o
    [ 28%] Building C object src/CMakeFiles/libssh2.dir/crypt.c.o
    cc1: error: unrecognized command line option "-std=gnu90"
    cc1: error: unrecognized command line option "-std=gnu90"
    [ 33%] gmake[2]: *** [src/CMakeFiles/libssh2.dir/agent.c.o] Error 1
    gmake[2]: *** Waiting for unfinished jobs....
    gmake[2]: *** [src/CMakeFiles/libssh2.dir/comp.c.o] Error 1
    cc1: error: unrecognized command line option "-std=gnu90"
    cc1: error: unrecognized command line option "-std=gnu90"
    gmake[2]: *** [src/CMakeFiles/libssh2.dir/openssl.c.o] Error 1
    gmake[2]: *** [src/CMakeFiles/libssh2.dir/channel.c.o] Error 1
    cc1: error: unrecognized command line option "-std=gnu90"
    gmake[2]: *** [src/CMakeFiles/libssh2.dir/crypt.c.o] Error 1
    Building C object src/CMakeFiles/libssh2.dir/global.c.o
    Building C object src/CMakeFiles/libssh2.dir/hostkey.c.o
    cc1: error: unrecognized command line option "-std=gnu90"
    gmake[2]: *** [src/CMakeFiles/libssh2.dir/global.c.o] Error 1
    cc1: error: unrecognized command line option "-std=gnu90"
    gmake[2]: *** [src/CMakeFiles/libssh2.dir/hostkey.c.o] Error 1
    gmake[1]: *** [src/CMakeFiles/libssh2.dir/all] Error 2
    gmake: *** [all] Error 2
    
    --- stderr
    fatal: Not a git repository (or any of the parent directories): .git
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        CMAKE_CXX_COMPILER
    
    
    thread 'main' panicked at '
    command did not execute successfully, got: exit code: 2
    
    build script failed, must exit now', /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.24/src/lib.rs:593
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    
    Build failed, waiting for other jobs to finish...
    error: failed to compile `cargo-update v1.1.1`, intermediate artifacts can be found at `/tmp/cargo-install.UvhJhzltj6lc`
    
    Caused by:
      build failed
    
    
    external 
    opened by balkierode 15
  • Binary from release uses openssl@1.1 which is not found on my Mac

    Binary from release uses [email protected] which is not found on my Mac

    This happens if I use cargo-binstall to install cargo-update, which pulls the binary from the release.

    ❯ cargo binstall cargo-update
    …
    ❯ cargo install-update --all
    dyld[99540]: Library not loaded: '/usr/local/opt/[email protected]/lib/libssl.1.1.dylib'
      Referenced from: '/Users/username/.cargo/bin/cargo-install-update-v11.1.1'
      Reason: tried: '/usr/local/opt/[email protected]/lib/libssl.1.1.dylib' (no such file), '/Users/username/.rustup/toolchains/stable-aarch64-apple-darwin/lib/libssl.1.1.dylib' (no such file), '/Users/username/lib/libssl.1.1.dylib' (no such file), '/usr/local/lib/libssl.1.1.dylib' (no such file), '/usr/lib/libssl.1.1.dylib' (no such file)
    fish: Job 1, 'cargo install-update --all' terminated by signal SIGABRT (Abort)
    

    If I compile cargo-update myself, I have no such problem.

    cargo install cargo-update
    

    I suppose the reason is that the release is built on a later macOS than mine (12.6) which caused the incompatibility.

    opened by SichangHe 1
  • Support building auditable executables

    Support building auditable executables

    The new cargo-auditable, that the Rust Secure WG & @Shnatsel built, is a tool that builds executables with Cargo and embeds a manifest of all of their exact dependencies and versions that can be easily extracted and analysed after the fact to check for security advisories and bugs (for example from RustSec advisory list). A Software Bill of Materials.

    While the tool and format is early, I believe it would fit very well into cargo install-update as something to run automatically to embed this information, one builds with cargo auditable build xx instead of cargo build xx, though for integration purposes it could be cleaner to have a library version of cargo-auditable that one could use here instead of depending on another binary.

    This would be complementary to #190, as that would verify at upgrade/build-time that an upgraded executable doesn't have any advisories on it (which is great), while the support described in this issue would allow other tools to check after the install that there aren't any new advisories that an installed executable is vulnerable for - or do other types of analysis on the dependency information.

    opened by repi 9
  • Run `cargo audit` on upgraded crate before building it

    Run `cargo audit` on upgraded crate before building it

    Would it be possible to add support for automatically running cargo audit (or checking directly against RUSTSEC like we do in cargo-deny) to verify that the new version doesn't have outstanding security advisories on it (directly or transitively)? Possibly with command-line or config options of what category advisories to warn or fail on.

    This would be a good automatic security layer for users in the case of eventual (reported) security exploits in dependencies and be a to fail upgrading to that version. Similar to not upgrading to crates that use yanked version but much broader and security-focused.

    Related cargo issue: https://github.com/rust-lang/cargo/issues/10016. but think it can be even more important (and easier) to support this in cargo-update here as it is common to do large batch upgrades of locally installed tools, and as it is very easy to upgrade them with this, one likely runs the upgrades more often.

    opened by repi 1
  • always exclude crate with -a possible?

    always exclude crate with -a possible?

    is it possible to use the -a opt and always exclude crates without explicitly writing them out? i have one i want pinned but to be able to update the rest easy

    question 
    opened by crawfish-storeroom 1
  • Can not install in MacOSX

    Can not install in MacOSX

    I have Rust install with Homebrew and I can't install cargo-update. If I run the command cargo install cargo-update, the installation fails at the very end of the process with the following error messages :

      Compiling git2 v0.11.0
    error: linking with `cc` failed: exit status: 1
    = note: Undefined symbols for architecture x86_64:
                "_libiconv", referenced from:
                    _git_path_iconv in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
                "_libiconv_open", referenced from:
                    _git_path_direach in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
                    _git_path_iconv_init_precompose in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
                    _git_path_diriter_init in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
                "_libiconv_close", referenced from:
                    _git_path_direach in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
                    _git_path_iconv_clear in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
                    _git_path_diriter_free in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
                    _git_path_dirload in liblibgit2_sys-b19a94382bcd229c.rlib(path.o)
              ld: symbol(s) not found for architecture x86_64
              clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    error: could not compile `cargo-update` due to previous error
    error: failed to compile `cargo-update v8.1.4`, intermediate artifacts can be found at `/var/folders/1n/ghmw9sj13m3428cl4z3_x0bm0000gn/T/cargo-installicU40Z`
    

    I have a MacBook Pro with an Intel processor running Mac OSX 12.5.1

    external 
    opened by ricounet67 1
  • cargo install-update report `error: no index found for registry`

    cargo install-update report `error: no index found for registry`

    cargo install-update report error: no index found for registry
    but cargo install success.

    >cargo install-update bat
        Updating registry 'https://rsproxy.cn/crates.io-index'
    
    Package  Installed  Latest   Needs update
    bat      v0.18.3    v0.21.0  Yes
    
    Updating bat
    error: no index found for registry: `rsproxy`
    
    
    Updated 0 packages.
    Failed to update bat.
    >cargo install bat
    
    Replaced package `bat v0.18.3` with `bat v0.21.0` (executable `bat.exe`)
    

    That is my cargo\config

    [source.crates-io]
    registry = "https://github.com/rust-lang/crates.io-index"
    
    replace-with = 'rsproxy'
    
    [source.rsproxy]
    registry = "https://rsproxy.cn/crates.io-index"
    
    opened by viruscamp 2
Releases(v11.1.1)
Owner
наб
наб
Dead simple, memoized cargo subcommand to hoist cargo-built binaries into the current working directory, written in Rust.

cargo-hoist Dead simple cargo subcommand to hoist cargo-built binaries into scope. stable Install | User Docs | Crate Docs | Reference | Contributing

refcell.eth 6 Nov 9, 2023
A CLI tool that allow you to create a temporary new rust project using cargo with already installed dependencies

cargo-temp A CLI tool that allow you to create a new rust project in a temporary directory with already installed dependencies. Install Requires Rust

Yohan Boogaert 61 Oct 31, 2022
A very simple third-party cargo subcommand to execute a custom command

cargo-x A very simple third-party cargo subcommand to execute a custom command Usage install cargo-x cargo install cargo-x or upgrade cargo install -

刘冲 9 Dec 26, 2022
a cargo subcommand for counting lines of code in Rust projects

cargo-count Linux: A cargo subcommand for displaying line counts of source code in projects, including a niave unsafe counter for Rust source files. T

Kevin K. 125 Dec 1, 2022
Cargo script subcommand

cargo-script cargo-script is a Cargo subcommand designed to let people quickly and easily run Rust "scripts" which can make use of Cargo's package eco

Daniel Keep 643 Jan 3, 2023
Cargo subcommand `release`: everything about releasing a rust crate.

cargo release Features Ensure you are in a good state for release, including: Right branch Up-to-date with remote Clean tree Supports workspaces using

null 933 Jan 8, 2023
A cargo subcommand that displays ghidra function output through the use of the rizin rz-ghidra project.

cargo-rz-ghidra A cargo subcommand that displays ghidra function output through the use of the rizin rz-ghidra project. Install cargo install --git ht

wcampbell 4 Nov 5, 2022
Cargo subcommand to easily run targets/examples

cargo-select Cargo subcommand to easily run targets/examples/tests Fuzzy match against targets, examples or tests in current rust project. cargo-selec

null 13 Sep 15, 2022
A CLI utility installed as "ansi" to quickly get ANSI escape sequences. Supports the most basic ones, like colors and styles as bold or italic.

'ansi' - a CLI utility to quickly get ANSI escape codes This Rust project called ansi-escape-sequences-cli provides an executable called ansi which ca

Philipp Schuster 5 Jul 28, 2022
Use Git installed in Bash on Windows/Windows Subsystem for Linux (WSL) from Windows and Visual Studio Code (VSCode)

WSLGit This project provides a small executable that forwards all arguments to git running inside Bash on Windows/Windows Subsystem for Linux (WSL). T

A. R. S. 1.1k Jan 3, 2023
A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

Robiot 2 Dec 25, 2021
Mirroring remote repositories to s3 storage, with atomic updates and periodic garbage collection.

rsync-sjtug WIP: This project is still under development, and is not ready for production use. rsync-sjtug is an open-source project designed to provi

SJTUG 57 Feb 22, 2023
Executables on Disk? Bleh 🤮

Executables on Disk? Preposterous! Saving executables to disk is like telling EDRs that "Hey! Take a look at this thing I just fetched from the Intern

whokilleddb 87 Dec 18, 2022
📦 Distribute Roblox games as standalone executables -- No existing client necessary. 🚧

?? Packer Distribute Roblox games as standalone executables. ?? Packer is still being worked on. Among many other things, Windows is not currently sup

Brooke Rhodes 16 Dec 20, 2022
Execute Rust code carefully, with extra checking along the way

cargo-careful cargo careful is a tool to run your Rust code extra carefully -- opting into a bunch of nightly-only extra checks that help detect Undef

Ralf Jung 240 Dec 28, 2022
`matchable` provides a convenient enum for checking if a piece of text is matching a string or a regex.

matchable matchable provides a convenient enum for checking if a piece of text is matching a string or a regex. The common usage of this crate is used

Pig Fang 6 Dec 19, 2022
CLI tool for checking ProtonDB compatibility of your Steam games.

protondb-check protondb-check is currently in active development stage, there might be bugs or other problems. Table Of Contents About Available comma

Giorgi Anakidze 3 Apr 1, 2024
A cargo plugin to shrink cargo's output

cargo single-line A simple cargo plugin that shrinks the visible cargo output to a single line (okay, in the best case scenario). In principle, the pl

Denis 5 Oct 30, 2022
Cargo-eval - A cargo plugin to quickly evaluate some Rust source code.

cargo eval A cargo plugin to quickly evaluate some Rust source code. Installation $ cargo install --git https://github.com/timClicks/cargo-eval.git Us

Tim McNamara 9 Dec 21, 2022