无法使用货物卸载来卸载〜/ .cargo中的软件包:软件包ID规范与无软件包匹配

时间:2018-08-19 13:08:15

标签: rust rust-cargo

我无法从系统中卸载Cargo安装的软件包。

有些软件包如rand-0.3.22显然安装在$HOME/.cargo

ls ~/.cargo/registry/src/github.com-1ecc6299db9ec823/ra

racer-2.0.14/     rand-0.3.22/      rand-0.4.2/
rand-0.4.3/       rand-0.5.5/       rand_core-0.2.1/
rawpointer-0.1.0/ rayon-1.0.2/      rayon-core-1.4.1/

这也可以通过使用cargo pkgid

进行验证
cargo pkgid -p rand

error: There are multiple `rand` packages in your project, and the specification `rand` is ambiguous.

Please re-run this command with `-p <spec>` where `<spec>` is one of the following:

rand:0.5.5
rand:0.4.3
rand:0.3.22

但是,我无法使用cargo uninstall删除该软件包。这些似乎都不起作用:

  • cargo uninstall rand

  • cargo uninstall -- rand:0.4.3

  • cargo uninstall https://github.com/rust-lang/crates.io-index#rand:0.4.3

对于以上任何命令,我都会得到:

error: invalid package id specification: <name-of-package-i-specified>

这似乎是一个非常基本的操作,因此我怀疑这是如何使用cargo-uninstall的基础。

有指针吗?

1 个答案:

答案 0 :(得分:2)

cargo uninstall撤消cargo install的效果。您没有cargo install rand,因为它只是一个库,而不是一个可执行程序。这意味着它未安装

~/.cargo/registry只是构建依赖项的缓存。随时擦拭;货物将在需要时重新下载并重新构建。

是的,这是错误的。货物应适当使用.local.config.cache;那么很明显,您可以清理一下。在当今时代,使用任意点目录都是一种侮辱。据报道,可能有几次。没人解决它。