Ikkala fayl ham 32 bit va ulardan faqat bittasi platangizda ishlaydi. Intel uchun ELF32 qurilmasi va ARM uchun ELF32 qurilmasi sinf maydonida bir xil fikrda va muhim bo'lgan hamma narsada farq qiladi. 32 bit variantini taklif qiluvchi yuklab olish sahifasi siz haqiqatan yuklab olgan fayl sarlavhasini o'qimaguningizcha sizga deyarli hech narsa aytmagan. Uning nomini o'zgartirish bitta ko'rsatmani ham o'zgartirmaydi.

Sinf va mashina turli savollarga javob beradi

Sinf maydoni fayl 32 bit yoki 64 bit tuzilmalardan foydalanishini aytadi. Mashina maydoni fayl qaysi ko'rsatmalar to'plami uchun kompilyatsiya qilinganini nomlaydi. Faqat birinchisini o'qish — bu x86 qurilmasining to'liq ishonchli ko'rinadigan fayl nomi bilan ARM platasiga tushish yo'li. Ikkala qiymat ham bir buyruqdan keladi, shuning uchun bittasini o'tkazib yuborish juda oson.

Xuddi shu chalkashlik 64 bit yorliqlarga ham tegishli, bu yerda aarch64 va x86-64 so'z o'lchamini baham ko'radi va birorta ko'rsatmani baham ko'rmaydi. Bitta 64 bit yuklab olishni sanab o'tgan sotuvchi sahifasi o'z qurilmasini tasvirlaydi, sizning mashinangizni emas. Sahifadagi ustun sarlavhasi o'rniga fayl sarlavhasini tekshiring.

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

Birinchi buyruq sarlavhani chop etadi, jumladan sinf va mashina. Ikkinchisi dastur sarlavhalarini ko'rsatadi, interpretator so'rovi shu yerda joylashgan. Uchinchisi jadval sizga kerak bo'lganidan ko'p bo'lganda bitta satr beradi.

Ijro ruxsatini qo'shish yoki distributiv tekshiruvini yamash hech narsani tarjima qilmaydi. Emulyatsiya, platforma uni qo'llab-quvvatlaydigan joyda, o'z unumdorligi va bog'liqlik xarajatiga ega joylashtirish qaroridir.

O'rnatuvchini ishga tushirishdan oldin sarlavhani o'qing

Ishonchli artefaktni undan biror narsani bajarishdan oldin tekshiring. Yarim yo'lda muvaffaqiyatsiz bo'lgan o'rnatuvchi kutubxonalarni almashtirilgan va hech narsa ishlamaydigan holatda qoldirishi mumkin, bu siz boshlagan arxivdan ham yomonroq boshlanish nuqtasidir. Sarlavhani tekshirish faqat o'qish uchun va tizimda hech narsa o'zgarmasligi ma'nosida qaytariladigan.

Mashina maydonini ishlab turgan tizimning paket arxitekturasi bilan solishtiring, plata marketing nomi bilan emas. 32 bit foydalanuvchi maydonini ishga tushiradigan 64 bit protsessorga 32 bit qurilma kerak va bu tafsilot qaysi yuklab olish mahalliy ekanini hal qiladi. Plata imkoniyati cheklov emas; o'rnatilgan foydalanuvchi maydoni cheklovdir.

dpkg --print-architecture
uname -m
getconf LONG_BIT

Birinchi buyruq tizim qaysi arxitektura uchun paket o'rnatishini xabar qiladi va aynan shu qiymat mos kelishi kerak. Qolgan ikkitasi yadro va so'z o'lchamini tasvirlaydi va ko'p arxitekturali o'rnatishda ular foydalanuvchi maydonidan farq qilishi mumkin.

Bu javoblar farq qilganda, boshqa arxivni yuklab olishdan oldin sotuvchi qaysinisini qo'llab-quvvatlashini hal qiling. Taxmin qilish har biri boshqa nuqtada muvaffaqiyatsiz bo'ladigan o'rnatishlar siklini yaratadi va har bir muvaffaqiyatsizlik yangi muammo bo'lib ko'rinadi.

Interpretatorni tekshiring, faqat arxitekturani emas

Dinamik bajariladigan fayl kutgan yuklagichni dastur sarlavhasida qayd etadi. Yuklagich yo'li boshqa tizimda yadro faylni ishga tushirishdan bosh tortadi, hatto mashina maydoni aniq mos kelsa ham. Aynan shu muvaffaqiyatsizlik odamlarni yo'qolgan kutubxonalarni qidirishga yuboradi.

Xato xabari qaysi holatda ekaningizni aytadi va ikkala holatni chalkashtirish oson. Format yoki arxitekturani rad etish yo'qolgan fayl yoki interpretatordan farq qiladi, va ulardan faqat bittasi boshqa paket o'rnatish bilan tuzatiladi.

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

Birinchi buyruq binar talab qiladigan interpretator yo'lini ko'rsatadi. Ikkinchisi bu yo'l mavjudligini tekshiradi, bu noto'g'ri qurilmani yo'qolgan yuklagichdan ajratadi.

Ishonchsiz binarda bog'liqliklar ro'yxatini ishga tushirmang, chunki ba'zi amalga oshirishlar o'zlari tekshirayotgan faylni bajarishi mumkin. Tekshiruvni faqat o'qish uchun saqlang va qo'llab-quvvatlanmaydigan qurilmani ishga tushirish uchun yuklagichning ramziy havolalarini qo'shish vasvasasiga qarshi turing.

Faktlar qo'lda bo'lganda qurilma so'rang

Sotuvchiga OS versiyasini, paket arxitekturasini, sinf va mashina qiymatlarini va birinchi xato xabarini yuboring. Bu birikma foydali javob oladi, umumiy muvaffaqiyatsizlikning ekran surati esa qo'llab-quvvatlash shablonini oladi.

Binar haqidagi savolni konfiguratsiya haqidagi savoldan alohida saqlang. To'g'ri qurilma ishga tushgandan so'ng, profillar, hisob ma'lumotlari va marshrutlar hali ham o'z muammolari, va profilni tahrirlashning hech qanday miqdori noto'g'ri arxitekturali binarni ishga tushirmaydi.

O'xshash maqolalar