Екі файл да 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

Бірінші пәрмен бинар сұрайтын интерпретатор жолын көрсетеді. Екіншісі сол жолдың бар-жоғын тексереді, бұл дұрыс емес құрастырманы жоғалған жүктеушіден ажыратады.

Сенімсіз бинарға тәуелділік тізімін іске қоспаңыз, өйткені кейбір іске асырулар өздері тексеретін файлды орындауы мүмкін. Тексеруді тек оқуға арналған күйде ұстаңыз және қолдау көрсетілмейтін құрастырманы іске қосу үшін жүктеушінің символдық сілтемелерін қосуға қарсы тұрыңыз.

Деректер қолда болғанда құрастырма сұраңыз

Жеткізушіге ОЖ шығарылымын, пакет архитектурасын, класс пен машина мәндерін және бірінші қате хабарламасын жіберіңіз. Бұл үйлесім пайдалы жауап алады, ал жалпы сәтсіздіктің скриншоты қолдау үлгісін алады.

Бинар туралы сұрақты конфигурация туралы сұрақтан бөлек ұстаңыз. Дұрыс құрастырма іске қосылғаннан кейін профильдер, тіркелгі деректері және маршруттар әлі де өз мәселелері, және профильді өңдеудің ешбір мөлшері қате архитектуралы бинарды іске қоса алмайды.

Қатысты мақалалар