Skip to content

Ойоштороу проблемаларын хәл итеү

Был бүлектә Iroha 3 ҡуйыу өсөн проблемаларҙы хәл итеү буйынса кәңәштәр бирелә. Әгәр һеҙ кисергән мәсьәлә бында һүрәтләнмәгән икән, беҙгә Telegram аша мөрәжәғәт итегеҙ.

Тиҙ тикшереүҙәр

Күпселек ҡоролмалар етешһеҙлектәре дүрт урындарҙың береһенән килә:

  • Rust инструменттар сылбыры өҫкө ағымындағы эш майҙаны ҡуйып ҡуйған версияға ҡарағанда олораҡ
  • cargo йәки rustc башҡа ҡоролмаға бүленгән rustup
  • missing system build tools such as a C compiler, pkg-config, or CMake
  • сығанаҡ үҙгәрештәренән һуң иҫкергән сығарылған өҙөктәр йәки урындағы төҙөлөш артефакттары

Iroha сығанағы иҫәбенән:

bash
rustup show
cargo --version
rustc --version
cargo metadata --no-deps

Әгәр cargo metadata уңышһыҙлыҡҡа осраһа, урындағы инструменттар сылбырын төҙәтеү pnpm refresh:iroha --source /path/to/iroha эшләткәнсе, сөнки яңыртыу хәҙерге мәғлүмәт моделе схемаһын булдырыу өсөн Kagami саҡыра ала.

Проблемаларҙы хәл итеү Rust Инструменттар сылбыры

Ҡайһы берҙә, әйберҙәр планлаштырылғанса бармай. Айырыуса әгәр һеҙ rust булған һеҙҙең системаһы бер аҙ элек, әммә яңыртыу түгел. Ошоға оҡшаш проблема барлыҡҡа килә ала Python: XKCD билдәле миҫал нисек булырға мөмкин был кеүек:

Python тирә-яҡ мөхиттең проблемаларын хәл итеү комиксы

Rust версияһын тикшер

Һеҙҙең һәм беҙҙең һаулығыбыҙҙы һаҡлап ҡалыу мәнфәғәтендә, һеҙ cargo дөрөҫ версияһы менән параллель rustc дөрөҫ версияһына эйә булыуына инанығыҙ. Ағымдағы өҫкө ағымындағы эш урыны rust-version = "1.92" тип иғлан итә һәм инструменттар сылбыр каналын rust-toolchain.toml ҡуйып ҡуя.

bash
$ cargo -V
$ cargo 1.93.1 (...)

һәм һуңынан

bash
$ rustc --version
$ rustc 1.93.1 (...)

Әгәр һеҙ юғары версиялар бар, һеҙ яҡшы. әгәр һеҙ түбән версиялар, һеҙ уны яңыртыу өсөн түбәндәге команданы эшләй алаһығыҙ:

bash
$ rustup toolchain update stable

Инсталляция урынын тикшерегеҙ

Әгәр һеҙ түбән версиялар һаны ала һәм һеҙ инструменттар сылбыр яңыртып һәм ул эшләмәгән... Әйҙәгеҙ, был ябай проблема тип әйтергә, әммә ул уртаҡ сиселеше юҡ.

Беренсенән, һеҙ ҡулланырға теләгән версияның ҡайҙа ҡуйылғанлығын асыҡларға тейеш:

bash
$ rustup which rustc
$ rustup which cargo

Ҡулланыусы ҡорамалдар селтәрҙәренең ҡоролмалары, ғәҙәттә, ~/.rustup/toolchains/stable-*/bin/. Әгәр был осраҡта, һеҙ

bash
$ rustup toolchain update stable

һәм был һеҙҙең проблемаларығыҙҙы хәл итергә тейеш.

Rust дефолт версияһын ҡарағыҙ

Икенсе вариант - һеҙҙә яңыртылған stable инструменттар сылбыры бар, әммә ул алдан билдәләнмәгән булып ҡуйылмаған.

bash
$ rustup default stable

nightly версияһын урынлаштырыу йәки Rust версияһын һуңғараҡ ҡуймайынса ҡуйыу был проблемаға килтерә ала.

Башҡа Rust версиялары бармы-юҡмы икәнен тикшерегеҙ

Ҡош-ҡорҙоң проблемаларын хәл итеүҙе дауам итһәк, беҙ шулай уҡ ҡушаматтарға эйә булыр инек:

bash
$ type rustc
$ type cargo

Әгәр был күрһәтелгән урындар һеҙ эшләгәндә күргәнегеҙҙән башҡа урынға йүнәлтә икән rustup which *, һеҙҙә проблема бар. Иҫегеҙгә төшөрәбеҙ , бындай ҡушаматтар өҫтәү генә етмәй:

bash
$ alias rustc "~/.rustup/toolchains/stable-*/bin/rustc"
$ alias cargo "~/.rustup/toolchains/stable-*/bin/cargo"

Эске логика һаман да боҙолорға мөмкин, шулай уҡ һеҙ нисек кенә ҡушаматтарығыҙҙы урынлаштырмаһын.

Иң ябай ысул - ҡулланылмаған версияларҙы алып ташлау.

Шулай ҙа был эште башҡарыуҙан да еңелерәк, сөнки ул бөтә версияларҙы ла күҙәтеүҙе талап итә. rustup ғәҙәттә, ике генә бар: системаның пакет менеджер версияһы һәм ҡуйылған бер Был дәреслектең башында ҡушҡан саҡта төп папкағыҙҙағы стандарт урынға инегеҙ. Тәүгеһе өсөн, һеҙҙең (Linux) дистрибуция ҡулланмаһын ҡарағыҙ.apt remove rust). Һуңғыһы өсөн:

bash
$ rustup toolchain list

Һәм һуңынан, һәр <toolchain> өсөн (көйөш бәйләнештәреһеҙ, әлбиттә):

bash
$ rustup remove <toolchain>

Инструменттар сылбырҙарын алып ташлағандан һуң, был ҡушымта команда табылмаған хатаны хәбәр итергә тейеш:

bash
$ cargo --help

Был хата актив Rust инструменттар сылбырһы ҡуйылмаған тип раҫлай.

bash
$ 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 юлдар араһындамы икәнен тикшергеҙ. Юҡһа, ҡайышығыҙҙың PATH үҙгәреүсәнен яңыртығыҙ.

Әгәр проблема дауам итһә, беҙгә шылтыратып, һөҙөмтәләр тураһында хәбәр итегеҙ.

python --version
python3 --version
pip --version
pip3 --version