कैसे ठीक करें ‘बाइनरी फ़ाइल को निष्पादित नहीं कर सकता है: उबंटू पर प्रारूप प्रारूप त्रुटि



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

हालांकि सरकारी एप्टिट-रिपॉजिटरी का उपयोग करते समय ऐसा नहीं होना चाहिए, यदि आप इंटरनेट से सॉफ्टवेयर डाउनलोड करते हैं और इसे चलाते हैं तो एक मौका है कि आप खूंखार दिखाई देंगे। bash: ./nameOfProgram: बाइनरी फ़ाइल निष्पादित नहीं कर सकता: प्रारूप प्रारूप त्रुटि । यह त्रुटि, जिसका आमतौर पर पालन किया जाता है bash :/nameOfProgram.sh: अनुमति अस्वीकृत या ऐसा कुछ, यह इंगित करता है कि उबंटू आपके द्वारा डाउनलोड किए गए बाइनरी के साथ सही ढंग से इंटरफ़ेस करने में सक्षम नहीं है। ऐसा इसलिए है क्योंकि यह स्पष्ट रूप से वैध लिनक्स बाइनरी है, यह वर्तमान में आपके कर्नेल की तुलना में एक अलग चिपसेट के लिए डिज़ाइन किया गया है।



उबंटू का उपयोग करने वाले अधिकांश लोग एक मानक आर्किटेक्चर के आधार पर 32-बिट या 64-बिट प्रोसेसर पर होते हैं, जिसे इंटेल ने जारी किया था, भले ही वास्तव में उनके माइक्रोचिप्स बने हों। यह याद रखना महत्वपूर्ण है कि 64-बिट प्रोसेसर 32-बिट मोड में चल सकता है, इसलिए यदि आपको 64-बिट प्रोसेसर होने के बावजूद भी यह त्रुटि हो रही है तो आप उबंटू का 32-बिट संस्करण चला रहे हैं। कुछ सरल कमांड यह सब बताती हैं कि आपकी चिप किस रूप में काम कर रही है।



विधि 1: आर्क कमांड का उपयोग करना

यदि आप अपने मशीन पर स्थापित माइक्रोप्रोसेसर के प्रकार से परिचित नहीं हैं, तो आप पहले कमांड लाइन से आर्च कमांड का उपयोग करना चाहते हैं। इस आदेश को चलाने के बाद आपको केवल एक ही पंक्ति का आउटपुट दिखाई देगा। कई मामलों में, आप i686 देखेंगे, जिसका अर्थ है कि आप 32-बिट प्रोसेसर पर हैं और इसलिए x86_64 बायनेरिज़ नहीं चला सकते हैं। यदि आप इसके बजाय amd64 या कुछ समान देखते हैं, तो आप x86_64 प्रोसेसर पर हैं, और कम से कम सैद्धांतिक रूप से अधिकांश 32-बिट और 64-बिट बायनेरी चलाने में सक्षम होना चाहिए। Microsoft विंडोज के विपरीत, उबंटू लिनक्स में वास्तव में 644-बिट चिपसेट के उपयोगकर्ताओं को 16-बिट विंडोज प्रोग्राम चलाने के लिए उनके ऑपरेटिंग सिस्टम में कई मामलों में अनुमति देने के लिए उचित उपकरण हैं।



यदि आप वास्तव में माइक्रोचिप के उस विशेष मॉडल का उपयोग नहीं कर रहे हैं तब भी ये शर्तें सही हैं। उदाहरण के लिए, i686 है कि कैसे लिनक्स कई 32-बिट प्रोसेसर को संदर्भित करता है, भले ही वे वास्तव में इंटेल 80686 चिप्स न हों। भले ही आप 64-बिट इंटेल तकनीक का उपयोग कर रहे हों, फिर भी आर्च आपके प्रोसेसर को एक amd64 चिप कह सकता है। यह एक त्रुटि नहीं दर्शाता है, और इसे सुरक्षित रूप से अनदेखा किया जा सकता है। आप बिल्ली का उपयोग कर सकते हैं / Proc / cpuinfo या ज्यादा / Proc / cpuinfo आपके द्वारा उपयोग किए जाने वाले सटीक प्रकार के प्रोसेसर का पता लगाने के लिए। चूंकि इस फ़ाइल की पंक्तियाँ लंबी हैं, इसलिए यदि आप ग्राफ़िकल टर्मिनल विंडो का उपयोग कर रहे हैं, तो आप इसे जारी करने से पहले F11 पुश करना चाहते हैं। एक वर्चुअल कंसोल के उपयोगकर्ता, विशेष रूप से जो उबंटू सर्वर के साथ काम कर रहे हैं, उन्हें अधिक चिंता करने की ज़रूरत नहीं है।

आपको कुछ अन्य प्रकार के आउटपुट दिखाई दे सकते हैं, जो चल रहे सॉफ़्टवेयर के लिए आपके विकल्पों को और प्रतिबंधित कर सकते हैं। उबंटू ने सबसे लंबे समय तक पावरपीसी आर्किटेक्चर का समर्थन किया, जो कुछ वर्कस्टेशनों के साथ-साथ कई क्लासिक मैकिंटोश और पुराने ओएस एक्स मैकिंटोश मशीनों में पाया जाता है। आप वास्तव में अभी भी इन आर्किटेक्चर के लिए उबंटू रिपॉजिटरी पा सकते हैं, हालांकि उन्हें आज बहुत कम समर्थन प्राप्त है। हालाँकि, आप इस मामले में आधिकारिक रिपॉजिटरी के बाहर इंटरनेट से डाउनलोड किए गए कई लिनक्स बायनेरिज़ को चलाने में सक्षम नहीं होंगे। इसका मतलब यह नहीं है कि उबंटू इन मशीनों पर काम नहीं करता है, हालांकि आप लाइटर लुबंटू वितरण को देखना चाहते हैं।

विधि 2: फ़ाइल कमांड का उपयोग करना

फ़ाइल कमांड से पता चलता है कि क्या अलग-अलग फाइलें हैं, और यह आमतौर पर बहुत सटीक है। फ़ाइल टाइप करके प्रश्न में फ़ाइल की पहचान करने का प्रयास करें nameOfProgram यह देखने के लिए कि क्या आपको आउटपुट के रूप में ईएलएफ 32-बिट या ईएलएफ 64-बिट मिलता है। यदि यह आपको बताता है कि यह एक ईएलएफ 64-बिट बाइनरी है और आपने आर्क कमांड से आउटपुट के रूप में i686 प्राप्त किया है, तो इसका कोई तरीका नहीं है कि आप इसे अपने मशीन पर यथोचित रूप से चला सकें। यदि आप 32-बिट उबंटू चलाने वाले 64-बिट माइक्रोप्रोसेसर पर हैं, तो आप तकनीकी रूप से ऑपरेटिंग सिस्टम को फिर से स्थापित कर सकते हैं, हालांकि यह एकल प्रोग्राम चलाने के लिए एक चरम कदम की तरह है।



वहाँ भी बहुत ही वास्तविक संभावना है, हालांकि मामूली, कि आप इसके बजाय एक द्विआधारी भर में आ सकता है कि जब आप इसे चलाने के लिए टर्मिनल से जंक वर्णों को हटाने का प्रयास करते हैं, भले ही आप उस पर मैलवेयर स्कैन चलाते हों। ये पात्र आमतौर पर लोज़ेंज के आकार के ब्लॉक या वैकल्पिक रूप से आयताकार क्यूब्स का रूप लेते हैं, जिनमें संख्यात्मक मान होते हैं। कुछ कंप्यूटर वैज्ञानिक बाद वाले टोफू को कॉल करते हैं, और उन वर्णों के यूनिकोड मूल्यों का प्रतिनिधित्व करते हैं जिन्हें आपके वर्तमान में स्थापित टाइपफेस प्रदर्शित नहीं कर पाएंगे। यदि टर्मिनल उन्हें इस तरह प्रदर्शित कर रहा है, तो आप निश्चिंत हो सकते हैं कि यह न तो फॉन्ट एरर है और न ही मालवेयर से कोई लेना-देना है। बल्कि, यह केवल इसलिए है क्योंकि बाइनरी के अंदर संकलित माइक्रोप्रोसेसर ऑपकोड आपके सिस्टम के लिए इतना अलग है कि यह कोड के कुछ की व्याख्या करने का तरीका नहीं जानता है।

इसे ठीक करने का सबसे अच्छा तरीका अपनी वास्तुकला के लिए उचित पैकेज स्थापित करना है। यदि आप उबंटू के अंदर से पैकेज स्थापित कर रहे हैं, तो apt-get system या ग्राफिकल Synaptic प्रबंधक ने आपको बिना किसी समस्या के कवर किया है। यदि आप दूसरे वितरण से पैकेज डाउनलोड कर रहे हैं, तो आपको अपनी वास्तुकला के लिए सही खोजने की आवश्यकता होगी। उदाहरण के लिए, आर्क लिनक्स की gvim पैकेज की सूची। जबकि डिफ़ॉल्ट पैकेज में x86_64 आर्किटेक्चर है, i686 चिपसेट के लिए भी एक है। यह 32-बिट मशीनों पर काम करेगा जो इंटेल के बीच संरचना के साथ काम करते हैं, लेकिन याद रखें कि i686 और 32-बिट शब्द हर समय पारस्परिक रूप से समावेशी नहीं होते हैं क्योंकि अन्य चिपसेट लिनक्स वास्तव में अपनी 32-बिट कार्यान्वयन की सुविधा प्रदान करते हैं।

पूरे GNU / Linux दृश्य की खोज करने वाले उपयोगकर्ता इनसे कहीं अधिक विदेशी तकनीकों के लिए संकलित बायनेरिज़ में आ सकते हैं। लिनक्स वास्तव में एक क्रॉस-प्लेटफ़ॉर्म कोड दृश्य है, इसलिए आपको OpenRISC, MIPS, SPARC, M32R, MN103, ARM, ARC, अल्फा और कई अन्य मानक बायनेरिज़ के साथ काम करने के लिए संकलित हैं। संभावना से अधिक, आप इनमें से किसी को भी चलाने में सक्षम नहीं होंगे, हालांकि एआरएम एक अत्यंत लोकप्रिय टैबलेट और स्मार्टफोन प्लेटफॉर्म है। यह प्लेटफ़ॉर्म भी है कि रास्पबेरी पाई आसपास आधारित है, जिसका अर्थ है कि यदि आप वास्तव में मोबाइल डिवाइस पर उबंटू चल रहे हैं या रास्पबेरी पाई के लिए उबंटू मेट वितरण है, तो आपको वास्तव में इंटेल 32-बिट या x86_64 सचिवों के बजाय इनकी आवश्यकता होगी।

4 मिनट पढ़ा