Je, faili yako ya VPN imeundwa kwa kichakataji hiki? Soma kichwa cha ELF
Daraja na mashine ya ELF ni sehemu tofauti, na mfasiri ni sehemu ya tatu. Soma zote tatu kabla ya kusakinisha mteja wa VPN kwenye Pi au ubao mwingine.
Faili zote mbili ni za 32-bit na ni moja tu kati yao inaendeshwa kwenye ubao wako. Ujenzi wa ELF32 kwa Intel na ujenzi wa ELF32 kwa ARM wanakubaliana kwenye sehemu ya daraja na hawakubaliani kwenye kila kitu muhimu. Ukurasa wa upakuaji unaotoa chaguo la 32-bit haukukuambia karibu chochote hadi usome kichwa cha faili uliyopakua kwa kweli. Kubadilisha jina lake hakubadilishi hata maagizo moja.
Daraja na mashine hujibu maswali tofauti
Sehemu ya daraja inasema ikiwa faili inatumia miundo ya 32-bit au 64-bit. Sehemu ya mashine inataja seti ya maagizo ambayo faili ilikompiliwa kwayo. Kusoma ya kwanza pekee ndiyo njia ambayo ujenzi wa x86 huishia kwenye ubao wa ARM ukiwa na jina la faili linaloonekana kuaminika kabisa. Thamani zote mbili zinatoka kwenye amri moja, ndiyo sababu ni rahisi sana kuruka moja.
Mkanganyiko huo huo unahusu lebo za 64-bit, ambapo aarch64 na x86-64 hushiriki ukubwa wa neno na hawashiriki maagizo hata moja. Ukurasa wa muuzaji unaoorodhesha upakuaji mmoja wa 64-bit unaelezea ujenzi wake wenyewe, si mashine yako. Angalia kichwa cha faili badala ya kichwa cha safu kwenye ukurasa.
readelf -h ./vendor-vpn readelf -l ./vendor-vpn | head -20 file ./vendor-vpn
Amri ya kwanza huchapisha kichwa, ikiwa ni pamoja na daraja na mashine. Ya pili inaonyesha vichwa vya programu, ambapo ombi la mfasiri liko. Ya tatu inakupa mstari mmoja wakati jedwali ni zaidi ya unachohitaji.
Kuongeza ruhusa ya utekelezaji au kurekebisha ukaguzi wa usambazaji hakutafsiri chochote. Uigaji, pale jukwaa linapouunga mkono, ni uamuzi wa usambazaji wenye gharama yake ya utendaji na utegemezi.
Soma kichwa kabla ya kuendesha kisakinishi
Kagua kifaa cha kuaminika kabla ya kutekeleza chochote kutoka kwake. Kisakinishi kinachoshindwa katikati kinaweza kuacha maktaba zilizobadilishwa na hakuna kinachofanya kazi, jambo ambalo ni mahali pa kuanzia mbaya zaidi kuliko kumbukumbu uliyoanzia. Ukaguzi wa kichwa ni wa kusoma tu na unaweza kurudishwa kwa maana kwamba hakuna kinachobadilika kwenye mfumo.
Linganisha sehemu ya mashine na usanifu wa vifurushi wa mfumo unaoendesha, si na jina la masoko la ubao. CPU ya 64-bit inayoendesha nafasi ya mtumiaji ya 32-bit inahitaji ujenzi wa 32-bit, na maelezo hayo huamua upakuaji upi ni asilia. Uwezo wa ubao si kikwazo; nafasi ya mtumiaji iliyosakinishwa ndiyo kikwazo.
dpkg --print-architecture uname -m getconf LONG_BIT
Amri ya kwanza inaripoti usanifu ambao mfumo husakinisha vifurushi kwa ajili yake, na hiyo ndiyo thamani inayopaswa kulingana. Nyingine mbili zinaelezea kernel na ukubwa wa neno, na zinaweza kutofautiana na nafasi ya mtumiaji kwenye usakinishaji wa usanifu mwingi.
Wakati majibu hayo yanatofautiana, amua lipi muuzaji analaumu kabla ya kupakua kumbukumbu nyingine. Kukisia huunda mzunguko wa usakinishaji ambao kila mmoja unashindwa mahali tofauti, na kila kushindwa kunaonekana kama tatizo jipya.
Kagua mfasiri, si usanifu pekee
Faili inayotekelezeka yenye nguvu hurekodi kipakiaji inachotarajia kwenye kichwa cha programu. Kwenye mfumo wenye njia tofauti ya kipakiaji kernel hukataa kuanzisha faili hata kama sehemu ya mashine inalingana kabisa. Hiyo ndiyo kushindwa kunakowapeleka watu kutafuta maktaba zinazokosekana.
Ujumbe wa hitilafu unakuambia uko katika hali gani, na hali hizo mbili ni rahisi kuchanganya. Kukataliwa kwa muundo au usanifu ni tofauti na faili au mfasiri unaokosekana, na moja tu kati yao hutatuliwa kwa kusakinisha kifurushi kingine.
readelf -l ./vendor-vpn | grep -A1 INTERP ls -l /lib64/ld-linux-x86-64.so.2
Amri ya kwanza inaonyesha njia ya mfasiri inayoombwa na faili binary. Ya pili hukagua ikiwa njia hiyo ipo, jambo ambalo hutenganisha ujenzi mbaya na kipakiaji kinachokosekana.
Usiendeshe orodha ya utegemezi kwenye faili binary isiyoaminika, kwa sababu baadhi ya utekelezaji zinaweza kuendesha faili inayokagua. Weka ukaguzi wa kusoma tu na upinge jaribu la kuongeza viungo vya kiishara vya kipakiaji ili ujenzi usioungwa mkono uanze.
Omba ujenzi ukiwa na ukweli mkononi
Tuma kwa muuzaji toleo la OS, usanifu wa vifurushi, thamani za daraja na mashine na ujumbe wa kwanza wa hitilafu. Mchanganyiko huo hupata jibu lenye manufaa, wakati picha ya skrini ya kushindwa kwa jumla hupata kiolezo cha usaidizi.
Tenganisha swali la faili binary na swali la usanidi. Ujenzi sahihi unapoanza, wasifu, vitambulisho na njia bado ni matatizo yao wenyewe, na hakuna kiasi cha uhariri wa wasifu kitakachofanya faili binary ya usanifu mbaya ifanye kazi.