دواړه فایلونه 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 بټ CPU ته 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 خپرونه، د پیکج معمارۍ، د ټولګې او ماشین ارزښتونه او لومړی د تېروتنې پیغام ولېږئ. همدا ترکیب ګټور ځواب ترلاسه کوي، په داسې حال کې چې د عمومي ناکامۍ سکرین شاټ د ملاتړ کالب ترلاسه کوي.

د باینري پوښتنه د ترتیباتو پوښتنې څخه بېله وساتئ. کله چې سم جوړښت پیل شي، پروفایلونه، اعتبارونه او لارې بیا هم خپلې ستونزې دي، او د پروفایل د سمون هېڅ کچه د غلط معمارۍ باینري نه شي چلولی.

اړوندې مقالې