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

问题描述 投票:19回答:5

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

cargo build --release

然后:

~/.cargo/bin/cargo build --release

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

 Blocking waiting for file lock on the registry index

我在Mac上。

rust blockchain ethereum rust-cargo parity-io
5个回答
19
投票

我有同样的问题,并与rm -rf ~/.cargo/registry/index/*解决了。


27
投票

运行cargo clean似乎解决了这个问题。


6
投票

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

  • 如果您自己运行2个编译,解决方案很明显:您需要取消其中一个。
  • 如果使用自动编译项目的IDE:您可以等待作业完成或关闭IDE。如果它不起作用,这可能是因为RLS挂了。你可以只用pkill rls来解决这个问题。
  • 作为最后的手段,你可以强行删除锁定:rm -rf ~/.cargo/registry/index/*,如another answer所述。

3
投票

在按照接受的答案中的建议删除Cargo注册表索引之前,请确保当前没有其他进程正在编译Parity或任何其他Rust包。


1
投票

我尝试按照Readme说明创建一个Polkadot节点。

我能够通过运行以下命令(复制/粘贴到Bash终端)来构建它:

git clone https://github.com/paritytech/polkadot;
cd polkadot; git checkout master;
rustup update nightly;
rustup target add wasm32-unknown-unknown --toolchain nightly;
rustup update stable;
rustup default stable;
cargo install --git https://github.com/alexcrichton/wasm-gc --force;
cargo install --git https://github.com/pepyakin/wasm-export-table.git --force;
brew install openssl; brew upgrade openssl;
rustc --version; cargo --version;
./build.sh;
cargo build;
cargo run -- --help;
./target/debug/polkadot --help;

然后我尝试使用以下命令运行Polkadot节点(这些命令是等效的):

./target/debug/polkadot -- --chain=dev --validator --key Alice -d /tmp/alice;
cargo run -- --chain=dev --validator --key Alice -d /tmp/alice;

但相反它显示了以下内容:

Blocking waiting for file lock on the git checkouts
Blocking waiting for file lock on build directory

我发现它是由CLion(Jetbrains IDE)引起的。

我通过关闭CLion解决了这个问题。我改为使用Visual Studio Code编辑器,它还允许使用断点调试Rust代码

© www.soinside.com 2019 - 2024. All rights reserved.