rm -rf ~/.cargo/registry/index/* ~/.cargo/.package-cache
~/.cargo/.package-cache
。 - tadmanrust-analyzer
插件引起了问题。当我打开项目后,它开始下载组件时会出现阻塞的情况。请注意,这里不需要解释或添加其他内容,只需直接进行翻译即可。 - sakura-bloom.cargo/registry/index
和 .package-cache
后对我有用。 - Emad Baqerirust-analyzer
,神奇地它开始工作了。 - undefined运行 cargo clean
似乎可以解决这个问题。
~/.cargo/.package-cache
,效果非常好。 - mudcargo clean
解决了这个问题。 - Steven当您同时运行同一个项目的两个编译时,就会出现这种情况。编译器使用锁文件以避免数据竞争问题。
有一些可能性:
如果您自己运行了这两个编译,解决方案很明显:需要取消其中一个编译。
如果您使用的是自动编译项目的集成开发环境(IDE):您可以等待作业完成或关闭IDE。如果不起作用,则可能是由于RLS挂起。您可以运行pkill rls
来解决问题。
作为最后的手段,您可以强制删除锁文件使用rm -rf ~/.cargo/registry/index/*
,如jvatic的回答所述。
/home/user/.cargo/registry/index
。 - Boiethios确保没有其他的rls或cargo在运行非常重要。使用sudo pkill rls cargo
可以很好地确保它们不存在。
cargo
进程时,同样的问题也导致了我的Cargo.toml
元数据文件被锁定,它就一直卡住了。在我发现另一个cargo
进程没有响应并终止后,我只需发送信号将其终止,问题就解决了,而无需删除任何锁定文件或整个.cargo
文件夹:)。 - undefined对我来说,删除rm $CARGO_HOME/.package-cache
解决了我的问题。
我在执行cargo run
时意外按下了ctrl+z
而不是ctrl+c
,然后下一次执行cargo run
时显示了阻塞等待注册表索引上的文件锁定
。我删除了该文件,然后它就恢复正常了。
编辑:
如果你像我一样意外按下了ctrl+z
,你可以通过运行fg
而不是删除软件包缓存文件来恢复cargo run
进程。实际上,ctrl+z
会向进程发送SIGTSTP信号,该进程将被挂起,直到你告诉它继续。有关更多信息,请参见这个答案。
我在 macOS Monterey 12.4 中使用了这个命令:
rm -rf ~/.cargo/.package-cache
然后重新运行构建命令,就可以了。
当你同时运行cargo build
命令两次时,通常会出现此错误。如果你正在使用一个IDE,请检查是否有插件在后台运行cargo命令。我在使用VS Code时就是这种情况。
我的问题是IDE正在运行cargo并锁定了目录。尝试关闭您的IDE。
我的VSCode智能感知在构建过程中正常工作。请确保您的智能感知没有正在构建。它会在底部显示一个旋转的小齿轮图标。通常发生在更新Cargo.toml
时。
cargo run
命令就能正常工作了。 - oriont~/.cargo/.package-cache
目录来解决该问题。 - Ali Shirvani