Решение проблемы с ошибкой «bash: не удаётся запустить бинарный файл: Ошибка формата выполняемого файла»

08.06.2018
0
2 543


В операционной системе Linux при запуске скаченного файла, либо при запуске самостоятельно скомпилированного файла вы можете столкнуться с ошибкой:

 


bash: /путь/до/файла: не удаётся запустить бинарный файл: Ошибка формата выполняемого файла

 


 


Если у вас англоязычная локаль, то ошибка будет примерно такой:

 


bash: ./program: cannot execute binary file: Exec format error

 


В самой ошибке вместо /путь/до/файла и ./program будет указан путь до файла программы, который вы хотите запустить.

 


Причинами данной ошибки могут быть:




    • попытка запустить 64-битный файл на 32-битной системе

 


    • файл скомпилирован для другой архитектуры (например, для ARM, а вы пытаетесь запустить его на ПК)

 


    • вы пытаетесь выполнить не исполнимый файл, а ссылку

 


    • файл размещён в совместной (shared) папке




Чтобы получить информацию о файле, который вы пытаетесь запустить, можно использовать утилиту file, после которой укажите путь до файла:

 


file /путь/до/программы

 


Пример вывода:

 


program: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=03ada11d91d298913990bfc074ccc3a380d26b69, with debug_info, not stripped

 


Здесь мы видим, что файл предназначен для 64-битной системы, об этом говорит запись 64-bit, для процессора с архитектурой x86-64.

 


Ещё один пример:

 


program: ELF-32-bit LSB executable, ARM, EABI4 version 1 (SYSV), dynamically linked(uses share libs), for GNU/LINUX 2.6.16, not stripped

 


Этот файл для 32-битных систем, для процессора с архитектурой ARM EABI4.

 


Если вы не знаете, какой битности ваша система, то выполните команду:

 


uname -m

 


Для 64-битных систем будет выведено x86_64, а для 32-битных – x86.

 


О разрядности дистрибутивов Linux и о программ

 


На компьютер с 32-битным процессором вы можете установить только 32-битную операционную систему и в ней запускать только 32-битные программы.

 


На компьютер с 64-битным процессором вы можете установить как 64-битную ОС, так и 32-битный Linux. В случае, если вы установили 64-битный дистрибутив Linux, то в нём вы можете запускать и 64-битные программы и 32-битные. А если вы установили 32-битный дистрибутив, то в нём возможно запускать только 32-битные программы.

 


Итак, если у вас 32-битная система, а файл для 64-битной системы или даже для ARM архитектуры, то у вас следующие варианты:




    • скачать файл подходящей для вас битности и архитектуры

 


    • если вы самостоятельно компилировали файл из исходного кода, то заново скомпилируйте для процессора вашей архитектуры




Запуск ARM файлов в Linux

 


Часто можно запустить исполнимые образы ARM на amd64 системах если установить пакеты binfmt-support, qemu, и qemu-user-static:

 


sudo apt install binfmt-support qemu qemu-user-static

 


Заключение

 


Итак, ошибка формата выполняемого файла с невозможностью запустить бинарный файл возникает из-за несоответствия программы операционной системе или архитектуре процессора. Эта проблема не должна возникать, если вы установили программу из исходных репозиториев (кроме случаев неправильной настройки источников репозитория). При возникновении этой проблемы поищите файл, подходящий для вашей архитектуры или скомпилируйте файл из исходных кодов под архитектуру вашей операционной системы.

Рейтинг:
1
Понравиласть статья? Жми лайк или расскажи своим друзьям!
Теги к новости:
Комментарии
Добавить комментарий
Добавить свой комментарий:
Ваше Имя:
Ваш E-Mail:
  • Это код:
    Кликните на изображение чтобы обновить код, если он неразборчив
    Введите сюда:
    Похожие новости:
    11.11.2017
    Linux (видео уроки) Обзор Linux видео уроки 1. Введение в ОС Linux/Unix Ubuntu. Видео linux уроки 2017 года. gnu linux operating system. Linux администрирование и linux уроки, linux скачать. To linux distros for 2017 and обзор linux mint 18 1.
    15.12.2018
    Linux mint 19.1 (скачать) Развиваемый сообществом дистрибутив Linux mint, основанный на Ubuntu и Debian, который ставит целью предоставить пользователю «современную, элегантную и удобную операционную систему, которая одновременно является мощной и
    13.07.2018
    Стала доступна для скачивания финальная версия Linux Mint 19 сразу со всеми основными вариантами рабочих столов: Cinnamon, MATE и Xfce. Если вы только начинаете знакомиться с удивительным миром Linux, то поясню: Cinnamon – это самый передовой и
    14.03.2018
    Rosa Linux - Linux из России. ROSA Fresh. Сделана для дома. Создана для вас. ROSA Fresh — это современная отечественная операционная система Linux, создаваемая сообществом и легально доступная всем желающим совершенно бесплатно и без регистрации.
    08.06.2018
    Иногда программа не запускается из-за отсутствия библиотеки определённой версии, при этом в системе может присутствовать эта самая библиотека, но другой версии. Чтобы было понятно, после одного из обновлений (в Arch Linux) перестал запускаться
    03.12.2018
    Новая версия Deepin 15 включает в себя новый дизайн Центра Управления и компьютера, он имеет новый размытый и прозрачный стиль, также включены новые взаимодействия для угловой навигации и оконного менеджера наряду с выбором обоев рабочего стола,
    все шаблоны для dle на сайте шаблоны dle 11.2 скачать
    выбрать фон