ไม่ควรเกิดจาก official apt-get repositories แต่ดาวน์โหลดซอฟต์แวร์จาก Internet รัน แล้วเจอ bash: ./nameOfProgram: cannot execute binary file: Exec format error ตามด้วย bash: ./nameOfProgram.sh: Permission denied บ่งชี้ Ubuntu interface กับ binary ไม่ได้ เพราะ binary นั้น compile สำหรับ chipset อื่นที่ kernel รองรับไม่ได้
ผู้ใช้ Ubuntu ส่วนใหญ่ ใช้ 32-bit หรือ 64-bit processors architecture มาตรฐาน Intel (ไม่ว่าจะใครผลิต) 64-bit รัน 32-bit mode ได้ หากเจอ error แม้มี 64-bit processor อาจรัน Ubuntu 32-bit อยู่ คำสั่งง่ายๆ บอก chip ทำงานเป็นแบบไหน
วิธีที่ 1: ใช้คำสั่ง arch
ไม่คุ้นเคย microprocessor บนเครื่อง ใช้ arch จาก CLI ได้ output บรรทัดเดียว บ่อยครั้งเห็น i686 = 32-bit processor รัน x86_64 binaries ไม่ได้ หากเห็น amd64 หรือคล้าย = x86_64 processor ควรรัน 32-bit และ 64-bit binaries ได้ ทำให้ Windows 16-bit programs รันบน Linux ได้ในหลายกรณี (ไม่เหมือน Windows)
คำเหล่านี้จริงแม้ไม่ได้ใช้ chip model นั้น ตัวอย่าง i686 = Linux เรียก 32-bit processors หลายตัว แม้ไม่ใช่ Intel 80686 จริง 64-bit Intel arch อาจเรียก amd64 - ไม่ใช่ error ปลอดภัยที่จะข้าม ใช้ cat /proc/cpuinfo หรือ more /proc/cpuinfo ดู processor จริง บรรทัดยาว กด F11 ก่อนรันถ้า graphical terminal Virtual console (Ubuntu server) ไม่ต้องกังวล
อาจเห็น output อื่นที่จำกัดตัวเลือกซอฟต์แวร์ Ubuntu รองรับ PowerPC นาน (workstations, Classic Mac, older OS X Mac) ยังมี repos สำหรับ arch นี้ แต่ support น้อย แต่อาจรัน Linux binaries จาก Internet นอก official repos ไม่ได้ ไม่ได้ว่า Ubuntu ไม่ทำงานบนเครื่องเหล่านี้ แต่อาจลอง Lubuntu (เบากว่า)
วิธีที่ 2: ใช้คำสั่ง file
file ระบุว่าไฟล์มีอะไรบ้าง มักแม่นยำ ระบุไฟล์: file nameOfProgram ดูว่า ELF 32-bit หรือ ELF 64-bit หากบอก ELF 64-bit แต่ arch ให้ i686 = รันไม่ได้บนเครื่องนี้ หาก 64-bit microprocessor รัน Ubuntu 32-bit reinstall OS (extreme step สำหรับโปรแกรมเดียว)
มีโอกาสน้อย ที่เจอ binary รันแล้ว噴 junk characters ที่เทอร์มินัล (แม้สแกน malware แล้ว) ตัวอักษรเป็น lozenge blocks หรือ rectangular cubes มีตัวเลข (computer scientists เรียก tofu = Unicode values ที่ typefaces แสดงไม่ได้) ไม่ใช่ font error หรือ malware แค่ compiled microprocessor opcode ใน binary ต่างด่างเกินไป kernel interpret บางส่วนไม่ได้
แก้ได้ดีที่สุด: ติดตั้ง package ที่ถูกต้องสำหรับ architecture ถ้าติดตั้งใน Ubuntu: apt-get หรือ Synaptic graphical manager จัดการให้ หากดาวน์โหลดจากดิสโตรอื่น: หา package ที่ถูกต้องสำหรับ architecture ตัวอย่าง Arch Linux gvim package: default = x86_64 มี i686 chipset version ด้วย ทำงานบน 32-bit machines ที่ใช้ Intel interrupt structure i686 และ 32-bit ไม่ mutually inclusive ทุกเวลา เพราะ chipsets อื่นที่ Linux รองรับ มี 32-bit implementations ของตัวเอง
ผู้สำรวจ GNU/Linux ทั้งหมด อาจเจอ binaries compiled สำหรับเทคโนโลยี exotic: OpenRISC, MIPS, SPARC, M32R, MN103, ARM, ARC, Alpha และมาตรฐานอื่นๆ มากมาย Linux cross-platform จริงๆ ARM = tablet/smartphone platform ยอดนิยม และ Raspberry Pi platform หากรัน Ubuntu บน mobile หรือ Ubuntu MATE for Raspberry Pi ต้องใช้ ARM binaries แทน Intel 32-bit/x86_64