Как распаковать exe в линукс

Обновлено: 03.07.2024

Учим Linux запускать exe файлы.
Как известно в Linux по умолчанию используется ELF (Executable and Linkable Format) формат исполняемых файлов.
Однако, не составляет труда обучить ядро Linux запускать любые другие исполняемые файлы (.exe файлы для Windows, скрипты на shell, python, байткод java и т. д. ) без явного указание эмулятора Т. е. в командной строке можно просто написать ./notepad.exe или ./my_script.py.
Для этого нужно обеспечить ядро необходимой информацией о формате исполняемого файла, и о том, каким образом и с помощью чего его можно интерпретировать.

Что для этого нужно?

1. Для этого нужно включить в ядре поддержку остальных исполняемых форматов:

В секции Executable file formats / Emulation-->
Опция Kernel support for MISC binaries

Можно или встроить эту возможность в ядро, или оформить ее в качестве отдельного модуля. Модуль будет называться binfmt_misc.

2. Подмонтировать файловую систему binfmt_misc в каталог /proc:
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc

3. Перейти в каталог /proc/sys/fs/binfmt_misc. У вас тут должно лежать два файла: register и status

4. Описать формат и интерпретатор для этого формата:

Для того что зарегистрировать новый формат исполняемого файла и интерпретатор для него нужно добавить в файл register строку в формате:
:name:type:offset:magic:mask:interpreter:flags
Вот что значат приведенные поля:

'name' - строковый идентификатор. В каталоге /proc/sys/fs/binfmt_misc будет создан новый файл с именем name
'type' - способ распознавания. Может быть 'M' для волшебства и 'E' для расширения.
'offset' - смещение маски в файле, считается в байтах. Этот параметр по умолчанию равен 0, если вы его не указываете (например: ':name:type::magic. ')
'magic' - последовательность байт для соответствия которой и определяется binfmt_misc. Строка поля magic может содержать шестнадцатириные символы, такие как \x0a или \xA4.
'mask' маска (опциональна, по умолчанию имеет значение 0xff) . Добавляя строку как в поле magic и такой же длины, вы можете маскировать соответствие некоторых битов файла.
'interpreter' - программа, которая должна быть выполнена вместе с исполняемым фалйлом, как первый аргумент (Необходимо указывать полный путь)
'flags' - опциональное поле, которое контролирует нектороые аспекты вызова интерпретатора
Например для запуска windows приложений с помощью wine в качестве интерпретатора в register нужно добавить такую строку:

echo ':DOSWin:M::MZ::/usr/bin/wine:' > register

Теперь в каталоге /proc/sys/fs/binfmt_misc у нас появился файл DOSWin следующего содержания:

$bash: cat DOSWin
enabled
interpreter /usr/bin/wine
flags:
offset 0
magic 4d5a

После всего этого в командной строке можно написать ./notepad.exe и у вас запустится notepad с помощью wine'a.

5. Для того, чтобы binfmt_misc не пришлось монтировать каждый раз вручную, в /etc/fstab можно добавить вот такую строчку:
none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0

6. Для того, чтобы отключить интерпретацию формата, нужно записать 0 в появившийся файл:
echo 0 > DOSWin

для того чтобы включить, нужно записать 1 :

7. Для того чтобы удалить формат, нужно записать -1 в имя файла этого формата:
echo -1 > DOSWin

Как запустить EXE в Linux

Способ 1: Менеджер приложений

Существует несколько доступных вариантов инсталляции Wine. Первый подразумевает использование менеджера приложений, который встроен в популярные дистрибутивы, основанные на Debian или RedHat. В первую очередь рассмотрим именно этот вариант, а осуществляется поставленная цель так:

Открытие менеджера приложений для установки Wine в Linux

Переход к поиску приложения Wine в Linux для дальнейшей установки

Успешное нахождение приложения Wine в Linux для дальнейшей установки

Кнопка для начала установки на странице приложения Wine в Linux

Подтверждение начала установки Wine в Linux через менеджер приложений

Ожидание завершения инсталляции приложения Wine в Linux через менеджер приложений

Открытие программы Wine в Linux после установки через менеджер приложений

Сейчас давайте приступим к рассмотрению альтернативного варианта инсталляции, если этот вам не подходит, а о предварительной настройке установленного инструмента поговорим в отдельном шаге данного материала.

Способ 2: Официальные репозитории

Запуск терминала для установки Wine в Linux через официальные репозитории

Ввод команды для установки Wine в Linux через официальные репозитории

Подтверждение установки Wine в Linux через официальные репозитории

Одобрение уведомления о занятом пространстве при установке Wine в Linux

Ожидание завершения установки программы Wine в Linux через терминал

На этом инсталляция завершена. Имеются еще и другие альтернативные методы добавления Wine в операционную систему, но их детальный разбор сейчас не имеет смысла, поэтому перемещаемся к следующему этапу.

Шаг 2: Первый запуск и настройка Wine

К счастью, большинство параметров рассматриваемой программы уже настроены автоматически, а недостающие компоненты так же самостоятельно загружаются. Однако юзеру все-таки придется выполнить несколько действий перед переходом к запуску EXE-файлов.

Запуск программы Wine в Linux после установки через терминал

Подготовка программы Wine в Linux для функционирования

Пользовательская настройка программы Wine в Linux после установки через терминал

На этом процедура конфигурации успешно завершена, а значит, можно переходить к непосредственному запуску имеющихся EXE-файлов.

Шаг 3: Запуск EXE-файлов через Wine

Перед началом выполнения поставленной задачи хотим отметить, что не стоит рассматривать Wine как полноценное средство работы с программами для Windows. Конечно, он является эмулятором, но потребление системных ресурсов при запуске софта поднимается в несколько раз, а также могут отсутствовать какие-либо опции, изначально работающие в Windows. Далее мы расскажем о более подходящих решениях для использования ПО в Linux, а сейчас давайте все-таки разберемся с выполнением EXE-объектов.

    Откройте файловый менеджер и переместитесь к расположению необходимого файла.

Переход к файлу для его дальнейшего запуска Wine в Linux

Переход к выбору приложения для запуска программы через Wine в Linux

Выбор программы Wine в Linux в качестве средства запуска EXE-файла

Установка EXE-файла в Wine в Linux для дальнейшего запуска

Ожидание завершения установки программы EXE через Wine в Linux

Запуск установленной через Wine в Linux программы для использования

Это было все, что мы хотели рассказать о запуске ПО для Windows в Linux. Как видно, лучшее решение всего одно, поэтому его и задействуют абсолютно все пользователи, желающие реализовать данную цель. Остается только следовать инструкциям, чтобы без каких-либо проблем открыть EXE-элемент и начать взаимодействие с ним.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: