Skip to content

Instantly share code, notes, and snippets.

@jeffkreeftmeijer
Last active February 2, 2021 11:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeffkreeftmeijer/93cd20420772a3c7e87366c4a2760ff4 to your computer and use it in GitHub Desktop.
Save jeffkreeftmeijer/93cd20420772a3c7e87366c4a2760ff4 to your computer and use it in GitHub Desktop.

cargo install --locked

While installing cargo-generate I ran into an error compiling caused by missing type annotations in cargo itself.

link:e0283.txt[role=include]

An already-closed issue in Cargo explained that the issue originated in the serde crate, and was already resolved. While waiting for a patched release, users were advised to use cargo install --locked.

link:locked.txt[role=include]

That worked. But why?

The current version of serde (v1.0.123) includes the bug, so a workaround is to download an older version of that crate. By passing --locked, cargo installs the version that’s currently locked to, meaning it’ll install the latest version that was succesfully installed and locked in the global lock file. [1] On my machine, that was v1.0.116.


1. I haven’t been able to find the global lock file, if such a thing exists, but I did find a list of serde crate versions in ~/.asdf/installs/rust/1.49.0/registry/cache
$ cargo install cargo-generate
Updating crates.io index
Installing cargo-generate v0.5.1
Compiling libc v0.2.85
Compiling autocfg v1.0.1
Compiling proc-macro2 v1.0.24
Compiling unicode-xid v0.2.1
Compiling syn v1.0.60
Compiling cfg-if v1.0.0
Compiling pkg-config v0.3.19
Compiling memchr v2.3.4
Compiling serde_derive v1.0.123
Compiling serde v1.0.123
Compiling once_cell v1.5.2
Compiling version_check v0.9.2
Compiling regex-syntax v0.6.22
Compiling log v0.4.14
Compiling lazy_static v1.4.0
Compiling matches v0.1.8
Compiling proc-macro-hack v0.5.19
Compiling unicode-width v0.1.8
Compiling getrandom v0.2.2
Compiling tinyvec_macros v0.1.0
Compiling percent-encoding v2.1.0
Compiling bitflags v1.2.1
Compiling ucd-trie v0.1.3
Compiling maplit v1.0.2
Compiling typenum v1.12.0
Compiling ryu v1.0.5
Compiling curl v0.4.34
Compiling ppv-lite86 v0.2.10
Compiling anyhow v1.0.38
Compiling serde_json v1.0.61
Compiling core-foundation-sys v0.7.0
Compiling either v1.6.1
Compiling crc32fast v1.2.1
Compiling itoa v0.4.7
Compiling doc-comment v0.3.3
Compiling quick-error v1.2.3
Compiling vec_map v0.8.2
Compiling same-file v1.0.6
Compiling remove_dir_all v0.5.3
Compiling unicode-segmentation v1.7.1
Compiling rand_core v0.5.1
Compiling fnv v1.0.7
Compiling strsim v0.8.0
Compiling anymap v0.12.1
Compiling utf8parse v0.1.1
Compiling ansi_term v0.11.0
Compiling hex v0.3.2
Compiling semver-parser v0.7.0
Compiling termcolor v1.1.2
Compiling cfg-if v0.1.10
Compiling shell-escape v0.1.5
Compiling number_prefix v0.3.0
Compiling rustc-workspace-hack v1.0.0
Compiling hex v0.4.2
Compiling glob v0.3.0
Compiling humantime v2.1.0
Compiling lazycell v1.3.0
Compiling home v0.5.3
Compiling opener v0.4.1
Compiling bytesize v1.0.1
Compiling thread_local v1.1.2
Compiling num-traits v0.2.14
Compiling num-integer v0.1.44
Compiling crossbeam-utils v0.8.1
Compiling crossbeam-utils v0.7.2
Compiling unicode-bidi v0.3.4
Compiling textwrap v0.11.0
Compiling tinyvec v1.1.1
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling im-rc v15.0.0
Compiling form_urlencoded v1.0.0
Compiling pest v2.1.3
Compiling itertools v0.9.0
Compiling humantime v1.3.0
Compiling walkdir v2.3.1
Compiling rand_xoshiro v0.4.0
Compiling vte v0.3.3
Compiling heck v0.3.2
Compiling unicode-normalization v0.1.16
Compiling strip-ansi-escapes v0.1.0
Compiling pest_meta v2.1.3
Compiling aho-corasick v0.7.15
Compiling bstr v0.2.14
Compiling jobserver v0.1.21
Compiling socket2 v0.3.19
Compiling atty v0.2.14
Compiling time v0.1.43
Compiling terminal_size v0.1.16
Compiling commoncrypto-sys v0.2.0
Compiling filetime v0.2.14
Compiling termios v0.3.3
Compiling num_cpus v1.13.0
Compiling quote v1.0.8
Compiling core-foundation v0.7.0
Compiling cc v1.0.66
Compiling idna v0.2.0
Compiling bitmaps v2.1.0
Compiling rand_core v0.6.1
Compiling regex v1.4.3
Compiling clap v2.33.3
Compiling commoncrypto v0.2.0
Compiling tar v0.4.32
Compiling proc-quote-impl v0.3.2
Compiling rand_chacha v0.3.0
Compiling url v2.2.0
Compiling crypto-hash v0.3.4
Compiling libz-sys v1.1.2
Compiling libnghttp2-sys v0.1.5+1.42.0
Compiling openssl-sys v0.9.60
Compiling libssh2-sys v0.2.21
Compiling curl-sys v0.4.39+curl-7.74.0
Compiling libgit2-sys v0.12.18+1.1.0
Compiling chrono v0.4.19
Compiling globset v0.4.6
Compiling console v0.14.0
Compiling env_logger v0.7.1
Compiling console v0.11.3
Compiling rand v0.8.3
Compiling sized-chunks v0.6.2
Compiling ignore v0.4.17
Compiling indicatif v0.15.0
Compiling proc-quote v0.3.2
Compiling pest_generator v2.1.3
Compiling tempfile v3.2.0
Compiling liquid-derive v0.21.0
Compiling structopt-derive v0.4.14
Compiling pest_derive v2.1.0
Compiling flate2 v1.0.20
Compiling dialoguer v0.6.2
Compiling structopt v0.3.21
Compiling kstring v1.0.1
Compiling cargo-platform v0.1.1
Compiling semver v0.10.0
Compiling serde_ignored v0.1.2
Compiling toml v0.5.8
Compiling liquid-core v0.21.2
Compiling crates-io v0.31.1
Compiling rustfix v0.5.1
Compiling liquid-lib v0.21.1
Building [==================================================> ] 204/216: liquid-lib, liquid-core, crates-io, libgit2-sys(build), toml
Compiling liquid v0.21.4
Compiling git2 v0.13.17
Compiling git2-curl v0.14.1
Compiling cargo v0.46.1
Building [=====================================================> ] 213/216: cargo
error[E0283]: type annotations needed
--> /Users/jeffkreeftmeijer/.asdf/installs/rust/1.49.0/registry/src/github.com-1ecc6299db9ec823/cargo-0.46.1/src/cargo/util/config/de.rs:471:63
|
471 | seed.deserialize(Tuple2Deserializer(1i32, env.as_ref()))
| ----^^^^^^--
| | |
| | cannot infer type for type parameter `T` declared on the trait `AsRef`
| this method call resolves to `&T`
|
= note: cannot satisfy `std::string::String: AsRef<_>`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0283`.
error: failed to compile `cargo-generate v0.5.1`, intermediate artifacts can be found at `/var/folders/gf/30sxxc2x18j87dnw9x3ndxd00000gn/T/cargo-install6OQe83`
Caused by:
could not compile `cargo`
To learn more, run the command again with --verbose.
$ cargo install --locked cargo-generate
Updating crates.io index
Installing cargo-generate v0.5.1
warning: package `miow v0.3.5` in Cargo.lock is yanked in registry `crates.io`, consider running without --locked
warning: package `socket2 v0.3.15` in Cargo.lock is yanked in registry `crates.io`, consider running without --locked
Downloaded aho-corasick v0.7.13
Downloaded ppv-lite86 v0.2.9
Downloaded proc-macro-hack v0.5.18
Downloaded proc-macro2 v1.0.21
Downloaded anyhow v1.0.32
Downloaded pkg-config v0.3.18
Downloaded memchr v2.3.3
Downloaded regex v1.3.9
Downloaded serde v1.0.116
Downloaded chrono v0.4.15
Downloaded serde_json v1.0.57
Downloaded terminal_size v0.1.13
Downloaded serde_derive v1.0.116
Downloaded structopt-derive v0.4.10
Downloaded termios v0.3.2
Downloaded thread_local v1.0.1
Downloaded heck v0.3.1
Downloaded filetime v0.2.12
Downloaded tempfile v3.1.0
Downloaded console v0.12.0
Downloaded humantime v2.0.1
Downloaded either v1.6.0
Downloaded cc v1.0.59
Downloaded num-traits v0.2.12
Downloaded ignore v0.4.16
Downloaded globset v0.4.5
Downloaded crc32fast v1.2.0
Downloaded structopt v0.3.17
Downloaded termcolor v1.1.0
Downloaded kstring v1.0.0
Downloaded unicode-segmentation v1.6.0
Downloaded flate2 v1.0.17
Downloaded url v2.1.1
Downloaded curl v0.4.33
Downloaded bstr v0.2.13
Downloaded num-integer v0.1.43
Downloaded git2 v0.13.11
Downloaded toml v0.5.6
Downloaded once_cell v1.4.1
Downloaded regex-syntax v0.6.18
Downloaded syn v1.0.41
Downloaded libnghttp2-sys v0.1.4+1.41.0
Downloaded libssh2-sys v0.2.19
Downloaded libc v0.2.77
Downloaded libgit2-sys v0.12.13+1.0.1
Downloaded curl-sys v0.4.36+curl-7.71.1
Downloaded 46 crates (10.5 MB) in 3.12s (largest was `curl-sys` at 2.9 MB)
Compiling libc v0.2.77
Compiling proc-macro2 v1.0.21
Compiling unicode-xid v0.2.1
Compiling cfg-if v0.1.10
Compiling autocfg v1.0.1
Compiling syn v1.0.41
Compiling pkg-config v0.3.18
Compiling serde_derive v1.0.116
Compiling memchr v2.3.3
Compiling lazy_static v1.4.0
Compiling serde v1.0.116
Compiling version_check v0.9.2
Compiling regex-syntax v0.6.18
Compiling getrandom v0.1.15
Compiling log v0.4.11
Compiling unicode-width v0.1.8
Compiling matches v0.1.8
Compiling percent-encoding v2.1.0
Compiling bitflags v1.2.1
Compiling ucd-trie v0.1.3
Compiling tinyvec v0.3.4
Compiling maplit v1.0.2
Compiling typenum v1.12.0
Compiling proc-macro-hack v0.5.18
Compiling ryu v1.0.5
Compiling anyhow v1.0.32
Compiling serde_json v1.0.57
Compiling ppv-lite86 v0.2.9
Compiling curl v0.4.33
Compiling crc32fast v1.2.0
Compiling either v1.6.0
Compiling core-foundation-sys v0.7.0
Compiling itoa v0.4.6
Compiling unicode-segmentation v1.6.0
Compiling strsim v0.8.0
Compiling utf8parse v0.1.1
Compiling doc-comment v0.3.3
Compiling same-file v1.0.6
Compiling vec_map v0.8.2
Compiling anymap v0.12.1
Compiling ansi_term v0.11.0
Compiling fnv v1.0.7
Compiling remove_dir_all v0.5.3
Compiling quick-error v1.2.3
Compiling semver-parser v0.7.0
Compiling once_cell v1.4.1
Compiling hex v0.3.2
Compiling termcolor v1.1.0
Compiling lazycell v1.3.0
Compiling bytesize v1.0.1
Compiling glob v0.3.0
Compiling opener v0.4.1
Compiling shell-escape v0.1.5
Compiling home v0.5.3
Compiling hex v0.4.2
Compiling rustc-workspace-hack v1.0.0
Compiling number_prefix v0.3.0
Compiling humantime v2.0.1
Compiling thread_local v1.0.1
Compiling textwrap v0.11.0
Compiling unicode-bidi v0.3.4
Compiling num-traits v0.2.12
Compiling num-integer v0.1.43
Compiling crossbeam-utils v0.7.2
Compiling pest v2.1.3
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling im-rc v15.0.0
Compiling unicode-normalization v0.1.13
Compiling itertools v0.9.0
Compiling vte v0.3.3
Compiling walkdir v2.3.1
Compiling heck v0.3.1
Compiling humantime v1.3.0
Compiling strip-ansi-escapes v0.1.0
Compiling idna v0.2.0
Compiling pest_meta v2.1.3
Compiling atty v0.2.14
Compiling socket2 v0.3.15
Compiling termios v0.3.2
Compiling time v0.1.44
Compiling terminal_size v0.1.13
Compiling commoncrypto-sys v0.2.0
Compiling filetime v0.2.12
Compiling num_cpus v1.13.0
Compiling jobserver v0.1.21
Compiling aho-corasick v0.7.13
Compiling bstr v0.2.13
Compiling quote v1.0.7
Compiling core-foundation v0.7.0
Compiling clap v2.33.3
Compiling rand_core v0.5.1
Compiling bitmaps v2.1.0
Compiling commoncrypto v0.2.0
Compiling url v2.1.1
Compiling tar v0.4.30
Compiling cc v1.0.59
Compiling regex v1.3.9
Compiling proc-quote-impl v0.3.2
Compiling rand_chacha v0.2.2
Compiling rand_xoshiro v0.4.0
Compiling crypto-hash v0.3.4
Compiling libz-sys v1.1.2
Compiling openssl-sys v0.9.58
Compiling libnghttp2-sys v0.1.4+1.41.0
Compiling libssh2-sys v0.2.19
Compiling curl-sys v0.4.36+curl-7.71.1
Compiling libgit2-sys v0.12.13+1.0.1
Compiling globset v0.4.5
Compiling env_logger v0.7.1
Compiling console v0.11.3
Compiling console v0.12.0
Compiling sized-chunks v0.6.2
Compiling rand v0.7.3
Compiling chrono v0.4.15
Compiling ignore v0.4.16
Compiling indicatif v0.15.0
Compiling proc-quote v0.3.2
Compiling pest_generator v2.1.3
Compiling tempfile v3.1.0
Compiling liquid-derive v0.21.0
Compiling pest_derive v2.1.0
Compiling structopt-derive v0.4.10
Compiling dialoguer v0.6.2
Compiling flate2 v1.0.17
Compiling structopt v0.3.17
Compiling kstring v1.0.0
Compiling toml v0.5.6
Compiling serde_ignored v0.1.2
Compiling cargo-platform v0.1.1
Compiling semver v0.10.0
Compiling liquid-core v0.21.2
Compiling rustfix v0.5.1
Compiling crates-io v0.31.1
Compiling liquid-lib v0.21.1
Compiling liquid v0.21.4
Compiling git2 v0.13.11
Compiling git2-curl v0.14.1
Compiling cargo v0.46.1
Compiling cargo-generate v0.5.1
Finished release [optimized] target(s) in 2m 58s
Installing /Users/jeffkreeftmeijer/.asdf/installs/rust/1.49.0/bin/cargo-generate
Installed package `cargo-generate v0.5.1` (executable `cargo-generate`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment