วิธีการแก้ไข 'ไม่สามารถดำเนินการแฟ้มไบนารี: ข้อผิดพลาดรูปแบบ Exec' บน Ubuntu

แม้ว่าจะไม่ได้เกิดขึ้นเมื่อใช้พื้นที่เก็บข้อมูล apt-get อย่างเป็นทางการหากคุณดาวน์โหลดซอฟต์แวร์ออกจากอินเทอร์เน็ตและเรียกใช้งานจากนั้นจะมีโอกาสที่คุณจะเห็น ทุบตีหวือ: ./nameOfProgram: ไม่สามารถเรียกใช้ไฟล์ไบนารีได้: ข้อผิดพลาดเกี่ยวกับรูปแบบ Exec . ข้อผิดพลาดนี้ซึ่งตามปกติโดย bash: ./nameOfProgram.sh: การอนุญาตถูกปฏิเสธ หรือบางอย่างคล้ายกับข้อความระบุว่าอูบุนตูไม่สามารถติดต่อกับไบนารีที่คุณดาวน์โหลดได้อย่างถูกต้อง เนื่องจากในขณะที่เห็นได้ชัดว่าเป็น Linux แบบไบนารีที่ถูกต้องโปรแกรมนี้ออกแบบมาสำหรับชิปเซ็ตที่แตกต่างจากเคอร์เนลของคุณที่สนับสนุนในปัจจุบัน

คนส่วนใหญ่ที่ใช้อูบุนตูอยู่บนโปรเซสเซอร์แบบ 32 บิตหรือ 64 บิตโดยอิงตามสถาปัตยกรรมมาตรฐานที่อินเทลปล่อยออกมาโดยไม่คำนึงว่าใครจะเป็นผู้ผลิตไมโครชิปได้บ้าง สิ่งสำคัญคือโปรดจำไว้ว่าโปรเซสเซอร์ 64 บิตสามารถทำงานได้ในโหมด 32 บิตดังนั้นหากคุณได้รับข้อผิดพลาดนี้แม้ว่าคุณจะมีโปรเซสเซอร์ 64 บิตมีโอกาสที่คุณจะใช้ Ubuntu เวอร์ชั่น 32 บิต คำสั่งง่ายๆเพียงไม่กี่คำก็ใช้เพื่อบอกว่าชิปของคุณใช้งานได้เช่น

วิธีที่ 1: การใช้คำสั่งโค้ง

หากคุณไม่คุ้นเคยกับชนิดของไมโครโปรเซสเซอร์ที่คุณได้ติดตั้งไว้ในเครื่องแล้วก่อนอื่นคุณจะต้องใช้คำสั่ง arch จากบรรทัดคำสั่ง คุณจะเห็นเพียงบรรทัดเดียวของผลลัพธ์ที่ส่งกลับมาให้คุณหลังจากใช้งานคำสั่งนี้ ในหลายกรณีคุณจะเห็น i686 ซึ่งหมายความว่าคุณใช้โปรเซสเซอร์แบบ 32 บิตและไม่สามารถเรียกใช้ไบนารี x86_64 ได้ ถ้าคุณเห็น amd64 หรือบางอย่างที่คล้ายคลึงกันคุณจะใช้โปรเซสเซอร์ x86_64 และอย่างน้อยที่สุดก็น่าจะสามารถเรียกใช้ไบนารี 32 บิตและ 64 บิตได้มากที่สุด ไม่เหมือน Microsoft Windows, Ubuntu Linux มีเครื่องมือที่เหมาะสมเพื่อให้ผู้ใช้ชิปเซ็ต 644 บิตสามารถรันโปรแกรม Windows แบบ 16 บิตในระบบปฏิบัติการได้หลายกรณีเช่นกัน

ข้อกำหนดเหล่านี้ยังคงเป็นจริงแม้ว่าคุณจะไม่ได้ใช้โมเดลเฉพาะของไมโครชิปก็ตาม ตัวอย่างเช่น i686 เป็นวิธีที่ลีนุกซ์หมายถึงโปรเซสเซอร์ 32 บิตจำนวนมากแม้ว่าจะไม่ใช่ชิป Intel 80686 จริงๆ แม้ว่าคุณจะใช้เทคโนโลยี Intel 64 บิต แต่โค้งอาจเรียกโปรเซสเซอร์ของคุณว่าเป็นชิป AMD64 ไม่ได้ระบุข้อผิดพลาดและสามารถละเลยได้อย่างปลอดภัย คุณสามารถใช้ cat / proc / cpuinfo หรือมากกว่า / proc / cpuinfo เพื่อหาประเภทของโปรเซสเซอร์ที่คุณใช้อยู่ เนื่องจากบรรทัดในไฟล์นี้ยาวเกินไปคุณอาจต้องกด F11 ก่อนที่จะออกถ้าคุณใช้หน้าต่างเทอร์มินัลกราฟิก ผู้ใช้คอนโซลเสมือนโดยเฉพาะอย่างยิ่งที่ทำงานกับเซิร์ฟเวอร์ Ubuntu จะไม่ต้องกังวลอะไรมาก

คุณอาจเห็นผลลัพธ์ประเภทอื่น ๆ ซึ่งอาจ จำกัด ตัวเลือกของคุณให้มากขึ้นเมื่อใช้งานซอฟต์แวร์ อูบุนตูได้รับการสนับสนุนสถาปัตยกรรม PowerPC เป็นเวลานานที่สุดซึ่งพบได้ในเวิร์คสเตชันบางรุ่นรวมทั้งเครื่องแมคอินทอช Classic Macintosh และเครื่อง Macintosh ที่เก่ากว่า คุณสามารถหาที่เก็บ Ubuntu สำหรับสถาปัตยกรรมเหล่านี้ได้แม้ว่าจะได้รับการสนับสนุนเพียงเล็กน้อยในปัจจุบัน อย่างไรก็ตามคุณอาจไม่สามารถเรียกใช้ Linux binaries จำนวนมากที่คุณดาวน์โหลดจากอินเทอร์เน็ตนอกที่เก็บข้อมูลอย่างเป็นทางการในกรณีนี้ ไม่ได้หมายความว่าอูบุนตูไม่ทำงานบนเครื่องเหล่านี้แม้ว่าคุณอาจต้องการดูการกระจาย Lubuntu เบา

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

วิธีที่ 2: การใช้แฟ้มคำสั่ง

คำสั่งไฟล์จะระบุถึงไฟล์ต่าง ๆ ที่มีอยู่และโดยปกติจะมีความถูกต้องมาก ลองระบุไฟล์ที่ต้องการโดยพิมพ์ชื่อไฟล์ OfProgram เพื่อดูว่าคุณได้รับ ELF 32 บิตหรือ ELF 64 บิตเป็นเอาต์พุต ถ้าบอกว่าเป็นไบนารีแบบ 64-bit ของ ELF และคุณได้รับ i686 เป็นผลลัพธ์จากคำสั่ง arch แล้วไม่มีวิธีใดที่คุณสามารถใช้งานได้บนเครื่องของคุณอย่างสมเหตุสมผล หากคุณใช้ไมโครโปรเซสเซอร์ 64 บิตที่รัน Ubuntu 32-bit คุณสามารถติดตั้งระบบปฏิบัติการใหม่ได้แม้ว่าจะเป็นขั้นตอนสุดขีดในการรันโปรแกรมเดียว

นอกจากนี้ยังมีความเป็นไปได้จริงมาก แต่เล็กน้อยที่คุณอาจจะเจอไบนารีที่เมื่อคุณพยายามที่จะเรียกใช้มันคายตัวอักษรขยะไปยังสถานีแม้ว่าคุณจะได้ใช้มัลแวร์สแกนมัน อักขระเหล่านี้มักใช้รูปแบบของรูปสี่เหลี่ยมขนมเปียกปูนหรือเป็นก้อนรูปสี่เหลี่ยมผืนผ้าที่มีค่าตัวเลขในตัว นักวิทยาศาสตร์คอมพิวเตอร์บางคนเรียกเต้าหู้หลังนี้และแสดงค่า Unicode ของอักขระที่รูปแบบอักษรที่พิมพ์อยู่ในปัจจุบันของคุณจะไม่สามารถแสดงได้ หากเทอร์มินัลแสดงข้อมูลเหล่านี้แบบนี้คุณสามารถมั่นใจได้ว่านี่ไม่ใช่ข้อผิดพลาดเกี่ยวกับแบบอักษรและไม่มีอะไรเกี่ยวข้องกับมัลแวร์ แต่นี่เป็นเพียงเพราะไมโครโพรเซสเซอร์ของไมโครโพรเซสเซอร์ที่คอมโพสิตภายในของไบนารีมีลักษณะแปลกปลอมกับระบบของคุณซึ่งไม่ทราบวิธีตีความโค้ดบางส่วน

วิธีที่ดีที่สุดในการแก้ไขปัญหานี้คือการติดตั้งแพคเกจที่เหมาะสมสำหรับสถาปัตยกรรมของคุณ หากคุณติดตั้งแพ็คเกจจากภายใน Ubuntu ระบบ apt-get หรือผู้จัดการแบบกราฟิก Synaptic จะช่วยคุณได้โดยไม่มีปัญหาใด ๆ หากคุณกำลังดาวน์โหลดแพ็กเกจจากการแจกจ่ายอื่นคุณจะต้องค้นหาแพคเกจที่เหมาะสมสำหรับสถาปัตยกรรมของคุณ ตัวอย่างเช่นรายการ Arch Linux ของแพคเกจ gvim แม้ว่าแพคเกจเริ่มต้นจะมีสถาปัตยกรรม x86_64 แต่ก็มีชิปเซ็ต i686 อยู่ด้วย นี้จะทำงานบนเครื่อง 32 บิตที่ทำงานร่วมกับโครงสร้างการขัดจังหวะ Intel แต่จำไว้ว่าเงื่อนไข i686 และ 32 บิตไม่รวมกันอยู่ตลอดเวลาตั้งแต่ชิปเซ็ตอื่น ๆ Linux สนับสนุนจริงมีการใช้งาน 32 บิตของตนเอง

ผู้ใช้สำรวจฉาก GNU / Linux ทั้งตัวอาจเจอไบนารีที่รวบรวมไว้สำหรับเทคโนโลยีแปลกใหม่กว่าเหล่านี้ Linux เป็นแพลตฟอร์มโค้ดข้ามแพลตฟอร์มอย่างแท้จริงดังนั้นคุณจะเห็น OpenRISC, MIPS, SPARC, M32R, MN103, ARM, ARC, Alpha และไบนารีมาตรฐานอื่น ๆ อีกมากมายที่รวบรวมไว้เพื่อทำงานร่วมกับ มากกว่าที่เป็นไปได้คุณจะไม่สามารถดำเนินการใด ๆ เหล่านี้แม้ว่า ARM เป็นแพลตฟอร์มแท็บเล็ตและสมาร์ทโฟนยอดนิยม นอกจากนี้ยังเป็นแพลตฟอร์มที่ใช้ Raspberry Pi ซึ่งหมายความว่าหากคุณใช้ Ubuntu บนอุปกรณ์เคลื่อนที่หรือการกระจาย Ubuntu MATE สำหรับ Raspberry Pi คุณจะต้องใช้เหล่านี้แทนIntel® 32-bit หรือ x86_64 ไบนารี

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

Facebook Twitter Google Plus Pinterest