तुमची VPN बाइनरी या CPU साठी बनवली आहे का? ELF हेडर वाचा
ELF वर्ग आणि मशीन वेगवेगळी क्षेत्रे आहेत, आणि इंटरप्रिटर तिसरे आहे. Pi किंवा इतर कोणत्याही बोर्डवर VPN क्लायंट स्थापित करण्यापूर्वी तिन्ही वाचा.
दोन्ही फाइल्स 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 आवृत्ती, पॅकेज आर्किटेक्चर, वर्ग आणि मशीन मूल्ये आणि पहिला त्रुटी संदेश पाठवा. ते संयोजन उपयुक्त उत्तर मिळवते, तर सामान्य अयशस्वीचा स्क्रीनशॉट समर्थन टेम्पलेट मिळवतो.
बाइनरीचा प्रश्न कॉन्फिगरेशनच्या प्रश्नापासून वेगळा ठेवा. योग्य बिल्ड सुरू झाल्यावर, प्रोफाइल, क्रेडेन्शियल्स आणि मार्ग अजूनही त्यांच्या स्वतःच्या समस्या आहेत, आणि प्रोफाइल संपादनाच्या कोणत्याही प्रमाणात चुकीच्या आर्किटेक्चरची बाइनरी चालणार नाही.