解决安装问题
本节提供 Iroha 3 安装的故障解决技巧. 如果您遇到的问题没有在这里描述,请通过 电报联系我们.
快速检查
最多的安装故障来自四个地方之一:
- 一个 Rust 工具链比上游工作空间固定的版本更老
cargo或rustc分离到一个不同于rustup的装置- 缺失的系统构建工具,如C编译器,
pkg-config,或CMake - 经过变更源改后生成过时的摘录或本地构建文物
从 Iroha 来源清算中,开始:
rustup show
cargo --version
rustc --version
cargo metadata --no-deps如果 cargo metadata 失败,在运行 pnpm refresh:iroha --source /path/to/iroha之前修复本地工具链,因为更新可以调用 Kagami 来生成当前的数据模型方案.
解决问题 Rust 工具链
有时,事情不会按计划进行.特别是如果你有 rust 在你的系统上一段时间前,但没有升级.类似的问题可以发生在 Python: XKCD 有一个著名的例子,它可能看起来像:

检查 Rust 版本
为了维护您和我们的智力,请确保您拥有正确的版本 cargo与正确的版 rustc.目前上游的工作空间声明 rust-version = "1.92"并将工具链道插入rust-toolchain.toml.
$ cargo -V
$ cargo 1.93.1 (...)然后,
$ rustc --version
$ rustc 1.93.1 (...)如果你有更高的版本,你没事.如果你有较低的版本,你可以运行下列命令更新它:
$ rustup toolchain update stable检查安装地点
如果你得到较低的版本号码,并且更新了工具链并没有工作... 让我们说这是一个常见的问题,但它没有共同解决方案.
首先,您应该确定您想要使用的版本安装在哪里:
$ rustup which rustc
$ rustup which cargo工具链的用户安装通常在 ~/.rustup/toolchains/stable-*/bin/.如果是这样,你应该能够运行
$ rustup toolchain update stable这应该解决你的问题.
检查默认版本 Rust
另一个选项是,你有更新的 stable工具链,但它不是默认设置.运行:
$ rustup default stable如果安装 nightly 版本或设置特定的 Rust 版本,然后不调整,则可能会导致此问题.
检查是否有其他版本 Rust
继续解决问题子洞,我们可能会有子的姓氏:
$ type rustc
$ type cargo如果这些指向您在运行 rustup which *时看到的位置以外的地方,那么您就有问题了.请注意,添加类似于此类别的号不够:
$ alias rustc "~/.rustup/toolchains/stable-*/bin/rustc"
$ alias cargo "~/.rustup/toolchains/stable-*/bin/cargo"不管你如何安排你的外名,内部逻辑仍然可以破裂.
最简单的解决方案是删除你不使用的版本.
然而,这比做起来更容易,因为它需要跟踪所有版本的 rustup 通常,只有两个:系统包管理器版本和安装的版本在您的家庭文件中的标准位置中,当您运行命令时对于前者,请参阅您的 (Linux) 分布指南.apt remove rust) 对于后者,运行:
$ rustup toolchain list然后,每一个 <toolchain> (当然没有角括号):
$ rustup remove <toolchain>在移除工具链后,该命令应该报告一个未找到的命令错误:
$ cargo --help该错误确认没有安装活跃的 Rust 工具链.然后运行:
$ rustup toolchain install stable解决故障的工具链 Python
当您在 Python 客户端设置期间安装使用 pip 的 Python 轮包时,可能会遇到这样的错误: "iroha_python-*.whl 不是这个平台上的支持式轮".
此错误意味着 pip 已经过时,因此您需要更新它.首先,建议检查您的 OS 是否有更新并进行系统升级.
如果这不起作用,你可以尝试更新用户目录的 pip.
python -m pip install --upgrade pip
确保在您的家庭目录中安装了 pip.要做到这一点,运行whereis pip并检查是否有 /home/username/.local/bin/pip 在路径中.如果没有,请更新 shell 的 PATH变量.
python --version
python3 --version
pip --version
pip3 --version