从源代码构建奇偶校验后,货物构建与"阻止等待注册表索引上的文件锁定"挂起

Nar*_*pai 24 rust rust-cargo

我按照readme说明从源代码构建Parity,然后执行以下命令:

cargo build --release
Run Code Online (Sandbox Code Playgroud)

然后:

~/.cargo/bin/cargo build --release
Run Code Online (Sandbox Code Playgroud)

.. 按照指示; 这两个导致我在提示挂起时收到以下消息:

 Blocking waiting for file lock on the registry index
Run Code Online (Sandbox Code Playgroud)

我在Mac上.

Rus*_*der 37

跑步cargo clean似乎解决了这个问题.

  • @FelixJassler 不。与接受的答案不同,它会删除您运行此命令的项目的整个目标文件夹。 (4认同)
  • 似乎不那么客气,但由于某种原因,只有被接受的答案才能解决我的问题。一样吗? (3认同)

Dol*_*hin 31

我在 macOS Monterey 12.4 中使用此命令:

rm -rf ~/.cargo/.package-cache
Run Code Online (Sandbox Code Playgroud)

然后重新运行构建命令,有效。


jva*_*tic 30

我有同样的问题并绕过它rm -rf ~/.cargo/registry/index/*.

  • 对我来说,我怀疑它是 VS Code 中的“rust-analyzer”扩展。当它下载其组件时(打开项目后),我遇到了阻塞问题。 (31认同)
  • 我还必须删除 `~/.cargo/.package-cache` 。 (24认同)
  • 删除`.cargo/registry/index`和`.package-cache`后为我工作 (4认同)
  • 等待 30 多岁后为我工作,什么也没做。 (3认同)

小智 28

确保您没有其他 rls 或货物运行很重要。 sudo pkill rls cargo是确保它们不是的好方法。

  • 就我而言,这只是仍在运行的货运流程。杀死那个进程为我修复了它。 (6认同)
  • 对我来说,最受欢迎的答案和公认的答案都不起作用。但这有效。 (2认同)

bmd*_*ruz 18

删除rm $CARGO_HOME/.package-cache对我有用。

我不小心击中ctrl+z而不是ctrl+c在执行时cargo run,下一次执行cargo run显示了我Blocking waiting for file lock on the registry index。我删除了上述文件,然后它又工作了。


Ral*_*ops 12

您可以在构建代码时指定 IDE 使用不同的路径。这将防止将来与锁发生冲突。将以下编译标志添加到 IDE:

--target-dir target/rls/
Run Code Online (Sandbox Code Playgroud)

在 VSCode 中使用以下设置:

"rust-analyzer.runnables.extraArgs": [
  "--target-dir",
  "target/rls/"
]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Fre*_*ios 10

当您同时运行同一项目的2个编译时会发生这种情况.编译器使用锁定文件来避免数据争用问题.有一些可能性:

  • 如果您自己运行2个编译,解决方案很明显:您需要取消其中一个.

  • 如果使用自动编译项目的IDE:您可以等待作业完成或关闭IDE.如果它不起作用,这可能是因为RLS挂了.你可以pkill rls解决这个问题.

  • 作为最后的手段,你可以强行删除锁定:rm -rf ~/.cargo/registry/index/*另一个答案所述.

  • 这是正确的,就我而言,这是 VS Code 中的货物扩展自动编译我的项目 (6认同)

Hom*_*ani 10

当您同时运行货物构建命令两次时,您通常会收到此错误。如果您使用 IDE 检查插件是否在后台运行货物命令,这就是我使用 VS Code 的情况。


Ben*_*Ben 9

我的问题是 IDE 正在运行货物并锁定了目录。尝试关闭您的 IDE


Sae*_*adi 7

我通过运行以下命令解决了这个问题:

  1. 搜索所有rust相关进程$ ps aux | grep rls
  2. 一一阻止他们$ sudo kill -9 <PID>


ben*_*deg 6

VScode 中存在同样的问题:如果您安装了 RLS

  1. 文件| 偏好 | 设置
  2. 搜索“rls”
  3. 在“rust”扩展中,取消选中“打开文件或项目时自动启动 RLS”

重新打开你的项目,应该就可以解决了。


Luc*_*lla 6

我的 VSCode 智能感知正在构建。确保您的智能感知没有建立。它显示一个在底部旋转的小齿轮图标。主要发生在您更新时Cargo.toml


小智 5

它在 linux (ubuntu) 上对我有用:

$ rm ~/.cargo/.package-cache
Run Code Online (Sandbox Code Playgroud)


小智 5

这有助于解决问题 rm ~/.cargo/.package-cache

在我将 rand = "0.8.5" 添加到我的 Cargo.toml 后,阻塞开始了。