Хоёр файл хоёулаа 32 бит бөгөөд зөвхөн нэг нь таны хавтан дээр ажилладаг. Intel-д зориулсан ELF32 хувилбар ба ARM-д зориулсан ELF32 хувилбар нь ангиллын талбарт санал нэгдэж, чухал бүх зүйлд санал нийлэхгүй. 32 битийн сонголт санал болгож буй татах хуудас нь таны бодитоор татсан файлын толгойг унтах хүртэл танд бараг юу ч хэлээгүй. Нэрийг нь өөрчлөх нь нэг ч заавар өөрчлөхгүй.

Ангилал ба машин нь өөр асуултад хариулдаг

Ангиллын талбар нь файл 32 бит эсвэл 64 битийн бүтцийг ашиглаж байгааг хэлнэ. Машины талбар нь файл ямар зааврын багцанд зориулж хөрвүүлэгдсэнийг нэрлэнэ. Зөвхөн эхнийхийг унших нь бүрэн итгэмээр файлын нэртэй x86 хувилбар ARM хавтан дээр буух зам юм. Хоёр утга ижил командаас гардаг тул нэгийг нь алгасах нь маш хялбар.

Мөн адил төөрөгдөл 64 битийн шошгонд хамаатай бөгөөд aarch64 ба x86-64 нь үгийн хэмжээг хуваалцдаг ч нэг ч заавар хуваалцдаггүй. Нэг 64 битийн татахыг жагсаасан нийлүүлэгчийн хуудас өөрийн хувилбарыг дүрсэлдэг, таны машиныг биш. Хуудасны баганын гарчиг биш, файлын толгойг шалгаарай.

readelf -h ./vendor-vpn
readelf -l ./vendor-vpn | head -20
file ./vendor-vpn

Эхний команд толгойг хэвлэнэ, үүнд ангилал ба машин багтана. Хоёр дахь нь програмын толгойг харуулна, интерпретаторын хүсэлт тэнд байдаг. Гурав дахь нь хүснэгт шаардлагаас илүү үед танд нэг мөр өгнө.

Гүйцэтгэх зөвшөөрөл нэмэх эсвэл түгээлтийн шалгалтыг засах нь юу ч хөрвүүлэхгүй. Эмуляци нь платформ дэмждэг газарт өөрийн гүйцэтгэл, хамаарлын зардалтай байршуулалтын шийдвэр юм.

Суулгагчийг ажиллуулахын өмнө толгойг уншина уу

Итгэмжлэгдсэн артефактыг түүнээс ямар нэг зүйл гүйцэтгэхээс өмнө шалгаарай. Хагас замд бүтэлгүйтсэн суулгагч нь номын сангуудыг сольсон байсаар, юу ч ажиллахгүй байсаар үлдээж болох бөгөөд энэ нь таны эхэлсэн архиваас дор эхлэх цэг юм. Толгойн шалгалт нь зөвхөн унших бөгөөд системд юу ч өөрчлөгдөхгүй гэсэн утгаараа буцаах боломжтой.

Машины талбарыг ажиллаж буй системийн багцын архитектуртай харьцуул, хавтангийн маркетингийн нэртэй биш. 32 битийн хэрэглэгчийн орон зайг ажиллуулж буй 64 битийн процессорт 32 битийн хувилбар хэрэгтэй бөгөөд энэ дэлгэрэнгүй нь аль татах нь уугуул болохыг тодорхойлно. Хавтангийн чадвар нь хязгаарлалт биш; суулгасан хэрэглэгчийн орон зай нь хязгаарлалт.

dpkg --print-architecture
uname -m
getconf LONG_BIT

Эхний команд нь систем ямар архитектурт зориулж багц суулгадгийг мэдээлдэг бөгөөд яг тэр утга таарах ёстой. Бусад хоёр нь цөм ба үгийн хэмжээг дүрсэлдэг бөгөөд олон архитектурын суулгалтад хэрэглэгчийн орон зайтай зөрүүтэй байж болно.

Эдгээр хариулт зөрүүтэй үед өөр архив татахаас өмнө нийлүүлэгч аль нэгийг дэмждэгийг шийдээрэй. Таамаглал нь тус бүр өөр газар бүтэлгүйтдэг суулгалтын давталт үүсгэдэг бөгөөд бүх бүтэлгүйтэл шинэ асуудал мэт санагддаг.

Интерпретаторыг шалга, зөвхөн архитектурыг биш

Динамик гүйцэтгэгдэх файл нь хүлээж буй ачаалагчийг програмын толгойд бүртгэдэг. Ачаалагчийн зам өөр системд цөм нь машины талбар яг таарсан ч файлыг эхлүүлэхээс татгалздаг. Энэ нь хүмүүсийг дутуу номын сан хайхад илгээдэг бүтэлгүйтэл юм.

Алдааны мэдээлэл та аль тохиолдолд байгааг хэлдэг бөгөөд хоёр тохиолдлыг андуурахад хялбар. Формат эсвэл архитектурын татгалзал нь дутуу файл эсвэл интерпретатороос ялгаатай, тэдгээрийн зөвхөн нэг нь өөр багц суулгаснаар засагдана.

readelf -l ./vendor-vpn | grep -A1 INTERP
ls -l /lib64/ld-linux-x86-64.so.2

Эхний команд нь бинарын шаардаж буй интерпретаторын замыг харуулна. Хоёр дахь нь тэр зам байгаа эсэхийг шалгадаг бөгөөд энэ нь буруу хувилбарыг дутуу ачаалагчаас ялгана.

Итгэмжлэхгүй бинар дээр хамаарлын жагсаалтыг ажиллуулж болохгүй, учир нь зарим хэрэгжүүлэлт шалгаж буй файлаа гүйцэтгэж болно. Шалгалтыг зөвхөн унших хэвээр байлгаж, дэмжлэггүй хувилбарыг эхлүүлэхийн тулд ачаалагчийн симбол холбоос нэмэх уруу таталтад эсэргүүцээрэй.

Баримтууд гарт байхад хувилбар хүсээрэй

Нийлүүлэгчид OS-ийн хувилбар, багцын архитектур, ангилал ба машины утгууд, эхний алдааны мэдээллийг илгээгээрэй. Энэ хослол ашигтай хариулт авдаг бол ерөнхий бүтэлгүйтлийн дэлгэцийн зураг дэмжлэгийн загвар авдаг.

Бинарын асуултыг тохиргооны асуултаас тусдаа байлгаарай. Зөв хувилбар ажиллаж эхэлсний дараа профайл, итгэмжлэл, маршрут нь өөрсдийн асуудал хэвээр байх бөгөөд профайл засварын ямар ч хэмжээ буруу архитектурын бинарыг ажиллуулж чадахгүй.

Холбоотой нийтлэлүүд