Сиздин VPN бинарыңыз ушул процессор үчүн курулганбы? ELF башын окуңуз
ELF классы жана машинасы өзүнчө талаалар, ал эми интерпретатор үчүнчүсү. VPN кардарын Pi же башка тактага орнотуудан мурун үчөөнү тең окуңуз.
Эки файл тең 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
Биринчи буйрук бинар талап кылган интерпретатор жолун көрсөтөт. Экинчиси ошол жолдун бар-жогун текшерет, бул туура эмес курулушту жоголгон жүктөгүчтөн ажыратат.
Ишенимсиз бинарга көз карандылык тизмесин иштетпеңиз, анткени айрым ишке ашыруулар текшерген файлын аткарышы мүмкүн. Текшерүүнү окууга гана арналган бойдон кармаңыз жана колдоого алынбаган курулушту иштетүү үчүн жүктөгүчтүн символдук шилтемелерин кошууга каршы туруңуз.
Фактылар колдо болгондо курулуш сураңыз
Жеткирүүчүгө ОС чыгарылышын, пакет архитектурасын, класс жана машина маанилерин жана биринчи ката билдирүүсүн жөнөтүңүз. Бул айкалыш пайдалуу жооп алат, ал эми жалпы ишке ашпоонун скриншоту колдоо шаблонун алат.
Бинар тууралуу суроону конфигурация тууралуу суроодон өзүнчө кармаңыз. Туура курулуш иштеп баштагандан кийин профилдер, эсептик маалыматтар жана маршруттар дагы эле өз маселелери, жана профилди оңдоонун эч кандай өлчөмү туура эмес архитектуралуу бинарды иштетпейт.