অফিসিয়াল apt-get রিপো ব্যবহার করলে এই এরর হয় না, কিন্তু ইন্টারনেট থেকে সফটওয়্যার ডাউনলোড করে চালালে bash: ./nameOfProgram: cannot execute binary file: Exec format error দেখতে পাওয়া যায়। এরপর bash: ./nameOfProgram.sh: Permission denied ও আসতে পারে। এর মানে: বাইনারি লিনাক্সের জন্য হলেও আপনার কার্নেল যে চিপসেট সাপোর্ট করে সেটির জন্য নয়।
উবুন্টু ব্যবহারকারী অধিকাংশই ৩২-বিট বা ৬৪-বিট ইন্টেল আর্কিটেকচারের প্রসেসর ব্যবহার করে (মাইক্রোচিপ কেউ বানালে যাক)। ৬৪-বিট প্রসেসর ৩২-বিট মোডে চালানো যায়, তাই ৬৪-বিট প্রসেসর থাকলেও ৩২-বিট উবুন্টু রান করলে এই এরর আসতে পারে। কিছু কমান্ড দিয়ে চিপের মোড জানা যায়।
পদ্ধতি ১: arch কমান্ড ব্যবহার
প্রসেসর টাইপ না জানলে arch কমান্ড চালান। আউটপুট এক লাইন। i686 = ৩২-বিট প্রসেসর (x86_64 বাইনারি চলবে না)। amd64 বা মিলতো জিনিস = x86_64 প্রসেসর (৩২-বিট ও ৬৪-বিট বাইনারি দুইটোই চলবে)। মাইক্রোচিপ মডেল ভিন্ন হলেও এই টার্মগুলো লিনাক্সের কনভেনশন। এক্টুয়াল প্রসেসর জানতে cat /proc/cpuinfo বা more /proc/cpuinfo (লাইন লম্বা, গ্রাফিক্যাল টার্মিনালে F11 চাপুন)। ভার্চুয়াল কনসোল/উবুন্টু সার্ভার ব্যবহারকারীরা চিন্তা করতে হবে না।
PowerPC আর্কিটেকচার (ওয়ার্কস্টেশন, ক্লাসিক Mac, পুরানো OS X Mac) 위한 উবুন্টু রিপো এখনো আছে (সাপোর্ট কম)। ইন্টারনেট থেকে ডাউনলোডেড বাইনারি এই আর্কিটেকচারে অফিসিয়াল রিপো বাদে চলবে না। লাইটওয়েট Lubuntu ডিস্ট্রো ট্রাই করুন।
পদ্ধতি ২: file কমান্ড ব্যবহার
file কমান্ড ফাইল কনটেন্ট আইডেন্টিফাই করে (খুব সঠিক)। file nameOfProgram চালান → আউটপুট ELF 32-bit বা ELF 64-bit। ELF 64-bit বাইনারি কিন্তু arch দিয়ে i686 আসলে আপনার মেশিনে চলবে না। ৬৪-বিট প্রসেসরে ৩২-বিট উবুন্টু রান করলে OS রি-ইনস্টল করলেই চলবে (সিংগেল প্রোগ্রামের জন্য এক্সট্রিম)।
বাইনারি রান করলে জাঙ্ক ক্যারেক্টার দেখাতে পারে (ম্যালওয়্যার স্ক্যান পরিষ্কার হলেও)। লজেন্জ-শেপ ব্লক বা নম্বরযুক্ত রেক্ট্যাঙ্গুলার কিউব (computer scientists একে tofu বলে) — এটি ফন্ট এরর বা ম্যালওয়্যার নয়, বাইনারির মাইক্রোপ্রসেসর অপকোড আপনার সিস্টেমের জন্য অজানা।
সমাধান: আপনার আর্কিটেকচারের জন্য সঠিক প্যাকেজ ইনস্টল করুন। উবুন্টুতে apt-get বা Synaptic হ্যান্ডেল করে। অন্য ডিস্ট্রোর প্যাকেজ ডাউনলোড করলে আপনার আর্কিটেকচারের জন্য সঠিকটি বেছে নিন। উদাহরণ: Arch Linux-এ gvim প্যাকেজে x86_64 ডিফল্ট, i686 ভার্সনও আছে (৩২-বিট মেশিনে ইন্টেল ইন্টারাপ্ট স্ট্রাকচার-এ কাজ করবে)। i686 ও ৩২-বিট সবসময় সমান নয় (অন্য চিপসেটের নিজস্ব ৩২-বিট ইমপ্লিমেন্টেশন আছে)।
GNU/Linux এক্সপ্লোর করলে একজàtic আর্কিটেকচারের বাইনারি পাওয়া যায়: OpenRISC, MIPS, SPARC, M32R, MN103, ARM, ARC, Alpha ইত্যাদি। ARM ট্যাবলেট/স্মার্টফোন/রাসপবেরি পাই-তে পপুলার। রাসপবেরি পাই-র জন্য Ubuntu MATE ব্যবহার করলে ARM বাইনারি লাগবে (ইন্টেল ৩২-বিট/৬৪-বিট নয়)।