Skip to content

Нэвтрүүлгийн асуудлыг шийдвэрлэх

Энэ хэсэг нь Iroha 3 тавихын тулд асуудал шийдэх зөвлөмжийг санал болгодог. Хэрэв танд тохиолдож буй асуудал энд тодорхойлогдсонгүй бол Telegram-ээр бидэнтэй холбоо бариарай.

Удахгүй шалгах

Ихэнх байгууламжийн алдаа нь дөрвөн байрлалын нэгээс үүдэлтэй:

  • Rust тоног төхөөрөмжийн сүлжээ нь урсгалын өмнө ажилладаг ажлын орон зайд байрлагдсан хувилбараас эрт
  • cargo эсвэл rustc өөр төхөөрөмжд шийдэх rustup
  • C компилятор, pkg-config эсвэл 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-ийн бусад хувилбар байгаа эсэхийг шалгаарай

Үргэлжүүлэн шувууны нүхний асуудлыг шийдвэрлэхэд бид "Shell aliases" гэж нэрлэж болно:

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>

Тус команд нь хэрэгслийн сүлжээг устгасны дараа "No-found error" команд мэдээлэх ёстой:

bash
$ cargo --help

Энэ алдаа нь ямар ч идэвхтэй Rust хэрэгслийн сүлжээг байрлуулсангүй гэдгийг баталгаажуулдаг. Дараа нь:

bash
$ rustup toolchain install stable

Python хэрэгслийн сүлжээний асуудлыг шийдвэрлэх

Хэрэв та Python Дугуйны багц нь Python үйлчлүүлэгчийн тохируулалт, "Iroha" гэх мэт алдаатай байж болно._Питон-*.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