как запускать .exe файлы в LINUX. как запускать .exe файлы в LINUX.
Учим 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 файлов на Astra Linux
Здравствуйте. Помогите разобраться. Переводят на Astra Linux, но остались спец.программы, которые есть только на Windows. Как их запускать? Скачал по ссылке https://wiki.astralinux.ru/pages/viewpage.action?pageId=3277216 сборку wine, но после установки и запуска требует компоненты Mono и Gecko. Где их взять и как установить, если компьютеры локальные и интернета нет.
Montfer
New member
Сообщения 2 358
Здравствуйте. Помогите разобраться. Переводят на Astra Linux, но остались спец.программы, которые есть только на Windows. Как их запускать? Скачал по ссылке https://wiki.astralinux.ru/pages/viewpage.action?pageId=3277216 сборку wine, но после установки и запуска требует компоненты Mono и Gecko. Где их взять и как установить, если компьютеры локальные и интернета нет.
http://dl.winehq.org/wine/
https://www.linux.org.ru/forum/desktop/13515247
А вообще, сначала уточните у ваших вышестоящих, можно ли вам устанавливать vine. И смотря какие проги, на некоторые можно найти аналоги для линукс
Михаил
New member
Сообщения 9
Спасибо. Завтра буду пробовать.
wine-mono-4.6.0.msi и wine_gecko-2.47-x86_64.msi я скачал, установить не знаю как.
P.S. Если бы вышестоящие об этом позаботились, я не задавал бы тут вопросы.
P.P.S. Проги написать не могу, но аналогов нет. Слишком старое все.
Montfer
New member
Сообщения 2 358
Спасибо. Завтра буду пробовать.
wine-mono-4.6.0.msi и wine_gecko-2.47-x86_64.msi я скачал, установить не знаю как.
P.S. Если бы вышестоящие об этом позаботились, я не задавал бы тут вопросы.
P.P.S. Проги написать не могу, но аналогов нет. Слишком старое все.
во второй ссылке, которую скинул выше упоминается команда
wine msiexec /i %filename%
как ставить это — с использованием sudo или нет — не знаю, надеюсь более опытные расскажут
UPD после установки wine с вики астры пошел на сайт https:\\wiki.winehq.org\Gecko и скачал подходящий для wine_gecko-2.40-x86.msi и wine_gecko-2.40-x86_64.ms командой wine msiexes /i /home/user/Загрузки/wine_gecko-2.40-x86.ms (user — обычный пользователь, под ним и делал установку)
после чего попытался установить icq командой wine /home/user/Загрузки/icq.exe
Установка завершилась с ошибкой, но хотя бы она началась.
Крч, проще отписками кидаться, что используется СПО под виндовс и на линукс перейти не можем, чем мучиться с wine, который по сути — дырка в безопасности системы
Как запустить Windows приложение в Astra Linux


Рассмотрим поэтапно процесс установки и запуска Windows приложения в операционной системе Astra Linux.
Дистрибутив Astra Linux основан на ядре операционной системы Debian. И для Debian, а также других дистрибутивов Linux, существует прекрасное широко известное средство для запуска приложений Windows – программа Wine. Эта программа представляет собой своего рода «песочницу», в которой выполняется Windows приложение. Wine отслеживает, к каким Windows API обращается программа, и перенаправляет её вызов на аналогичные API Linux, если они есть. Из-за того, что Windows и Linux – очень разные операционные системы, не для каждого API Windows существует аналог в Линукс, и наоборот. Поэтому не все программы будут работать под Wine. Но многие. Рассмотрим установку Wine и запуск из-под него Windows приложения на примере Notepad++.
1 Установка Wine в Astra Linux
Первым делом необходимо запустить менеджер пакетов Synaptic. Быстрее всего это сделать так. Нажать сочетание клавиш Win+R и начать вводить в поле команды название Synaptic. Почти сразу высветится найденная программа. Наводим курсор на неё (или стрелками и клавишей Enter ) и запускаем. При запуске Synaptic потребует ввести пароль от учётной записи.

Теперь в менеджере пакетов необходимо найти Wine. Кликаем на иконку с лупой в верхней панели. И набираем в открывшемся окне поиска Wine .

Менеджер пакетов найдёт программу Wine и отобразит её компоненты. Для установки нужно нажать кнопку «Применить» на верхней панели инструментов.

Начнётся установка Wine.

Необходимо дождаться окончания процесса инсталляции.
2 Использование Wine в Astra Linux
Теперь идём на сайт программы Notepad++ и скачиваем установочный файл. Он будет загружен в директорию «Загрузки» текущего пользователя. Чтобы в этом убедиться, можно запустить терминал (например, xterm, запуск аналогично: Win+R и набрать xterm ) и ввести в командной строке ls Загрузки . Появится содержимое каталога «Загрузки». В списке должен присутствовать скачанный установщик блокнота.
Невозможно запустить установщик напрямую, т.к. он скомпилирован под ОС Windows. Тут нам и придёт на помощь Wine. В командной строке терминала xterm набираем следующее:
wine Загрузки/npp.7.8.9.Installer.exe
Название файла, естественно, должно соответствовать вашему скачанному файлу. Начнётся процесс установки блокнота, стандартный для Windows. Просто пройдите его до конца, как обычно.

Когда программа будет установлена, Wine создаст на диске в своей директории иерархию каталогов, похожую на Windows. По умолчанию рабочая директория Wine скрыта. Чтобы её увидеть, нужно в проводнике (менеджере файлов) в мню «Вид» выбрать пункт «Отображать скрытые» или нажать сочетание клавиш Ctrl+H . Теперь директория Wine со всеми подкаталогами стала видна.

В Linux директории, название которых начинается с символа точки «.», по умолчанию являются скрытыми.

Можем через менеджер файлов зайти в каталог Notepad++ и убедиться, что программа Wine создала всю иерархию директорий, как в Windows.
Можно запускать блокнот из командной строки терминала xterm:
wine "C:/Program Files (x86)/Notepad++/notepad++.exe"

Для быстрого запуска блокнота в менеджере файлов кликаем на файле notepad++.exe правой кнопкой мыши и в контекстном меню выбираем пункт Отправить – Рабочий стол (создать ярлык). На рабочем столе Astra Linux появится ярлык для запуска Notepad++.

Если при нажатии на ярлык ничего не происходит, стоит посмотреть его свойства, кликнув правой кнопкой мыши на ярлыке. Затем в окне «Свойства» перейти на вкладку «Ярлык» и обратить внимание на строчку «Команда». В ней должна быть именно та же команда, которую мы только что набирали в консоли. Если это не так, поправьте:

Теперь вы можете полноценно пользоваться программой Notepad++, написанной для Windows, в операционной системе Astra Linux.
Как я уже упоминал, далеко не все Windows программы запускаются и работают из-под Wine с такой же лёгкостью. Но теперь вы знаете как проверить, будет работать под Линукс или нет интересующая вас Windows программа.
Последнее изменениеСреда, 03 Март 2021 22:19 Прочитано 49495 раз
Поблагодарить автора:
Поделиться

Похожие материалы (по тегу)
Последнее от aave
- WPF: элементы ListBox в виде CheckBox
- Как заменить матрицу ноутбука ThinkPad T440s
- Потокобезопасная наблюдаемая коллекция
- Преобразование массива в строку с помощью LINQ и лямбда-выражений
- Распаковка файла из ресурсов в директорию приложения
Другие материалы в этой категории:
2 комментарии
Анатолий 15.08.2022 12:05 Комментировать Пакет установился, но при попытке установки приложения выдаёт ошибку: wine: команда не найдена. При запросе dpkg -l|grep wine выдаёт только fonts-wine-tahoma.
Андрейка 25.05.2023 12:07 Комментировать благодарочка тебе друг великая. все четко.
Оставить комментарий
Полезные советы

Часто необходимо перевести число из одной системы счисления в другую. Предлагается программный код статического класса, который реализует данную функциональность в виде статического метода ConvertFromTo(), а также дополнительных методов расширения. Программный код для перевода чисел в разных системах счисления (разворачивается)
'''''' Вспомогательные. ''' Public Module Helpers '''''' Преобразует число из десятичной системы счисления в число в восьмеричной системе счисления. ''' Public Function ToOctal(dec As Integer) As Integer Return ConvertFromTo(dec, 10, 8) End Function '''''' Преобразует число из десятичной системы счисления в число в двоичной системе счисления. ''' Public Function ToBinary(dec As Integer) As Integer Return ConvertFromTo(dec, 10, 2) End Function '''''' Преобразует число из заданной системы счисления в другую. ''' ''' Число в исходной системе счисления. ''' Исходная система счисления. ''' Целевая система счисления. '''''' Будьте внимательны: при переводе в двоичную систему может возникнуть ошибка переполнения, т.к. двоичные числа могут быть очень длинные. ''' Также здесь не реализован перевод чисел из и в 16-ную систему счисления, в которой применяется цифро-буквенная нотация. Public Function ConvertFromTo(number As Integer, fromBase As Integer, toBase As Integer) As Integer Dim result As Integer = 0 Dim i As Integer = 0 Do While (number <> 0) result += (number Mod toBase) * CInt(Math.Pow(fromBase, i)) number = CInt(Math.Truncate(number / toBase)) i += 1 Loop Return result End Function End Module
Как запустить exe на Linux — описание всех возможных способов
Часто новые пользователи операционных систем Линукс или Unix, а также любой их разновидности (дистрибутива) пытаются активировать на них исполняемые файлы, созданные в среде Microsoft Windows и предназначенные исключительно для запуска и установки на операционных системах Виндовс. Практически сразу они понимают, что сделать этого стандартными средствами не получится, и огорчаются, но не стоит паниковать раньше времени. В этом материале будет рассказано, как произвести запуск приложений Windows на Linux, что для этого нужно и можно ли обойтись лишь стандартными средствами.
Как запустить exe на Linux и возможно ли это сделать
Сразу же стоит сказать, что установочные файлы из операционной системы Линукс не поддерживаются на Виндовс и наоборот, а значит, запустить их не получится ни на Ubuntu, ни на Kali, ни на Mint, нигде. Каждая из этих систем является непосредственным потомком Линукс, а она создана на основе Unix, которая априори не может работать с файлами COM и EXE, которые запускаются на Виндовс любой версии.

Окно свойств приложения
Стандартными средствами выполнить запуск этих инсталляционных пакетов и документов не получится, а вот если попробовать установить программу эмулятор Виндовс для Линукс, есть определенный шанс на успех. Таких решений есть несколько, но наиболее распространенным, стабильным и удобным является Wine. Оно работает в качестве простого слоя совместимости с API от Windows.
Важно! Wine позволяет запустить не все программы Windows на Linux, так как он все еще активно развивается и дополняется новыми функциями. Несмотря на это, базовые программы с Винды на нем идут без каких-либо нареканий. Установить Вайн можно через классический репозиторий ПО.

Установка программного обеспечения через командную строку из стандартного репозитория
Что такое Wine для Линукс
Wine представляет собой специализированное программное обеспечение, которое позволяет выполнять запуск классический приложений для Виндовс (с расширением *.exe) в среде любого дистрибутива Линукс. Об этом приложении слышали многие пользователи Unix-подобных систем и в некоторой степени оно помогло сэкономить их кучу времени.
Сразу же стоит сказать, что на некоторых дистрибутивах Линукс этот программный продукт установлен «из коробки» (предустановлен и входит в набор стандартных программ), поэтому в них уже можно пытаться запускать EXE-файлы и ошибки операционная система не выдаст.
Для того чтобы узнать, установлено ли приложение в конкретный дистрибутив и какой оно версии, необходимо перейти в консоль и прописать там команду «winecfg». Если окно открылось, то программа установлена. Для просмотра ее версии переходят в раздел «О программе».

Первый запуск и настройка программы Wine
Немаловажный вопрос заключается в том, где и как взять новую версию программного продукта. Если говорить проще, то существует три версии Wine: Stable – стабильная версия без вылетов и багов, которая устанавливается в большинстве случаев, Beta – бета-релиз, являющийся тестовым, и Development Release – особая версия для разработчиков программного обеспечения. Сравнительно недавно была произведена оптимизация всех модулей программы, поэтому можно смело устанавливать любую версию, начиная с 1.6.2.
Использование эмулятора Виндовс для Линукс
Необходимо разобрать вопрос о том, как установить EXE на Linux и пользоваться их без каких-либо ограничений. Для этого будет использована программа Wine, которая есть в некоторых дистрибутивах по умолчанию. Далее будет рассказано, как происходит установка, запуск и настройка Wine (Linux эмулятора Windows).
Установка Wine
Наиболее популярный способ установки Wine основан неиспользовании менеджера приложений. Он имеется на некоторых дистрибутивах, основанных на Debian или RedHat. Для этого необходимо:
- Перейти в главное меню операционной системы, нажав по соответствующей клавише.
- Запустить оттуда программу под названием «Менеджер приложений».
- В поисковой строке написать «Wine» и нажать на клавишу ввода.
- Просмотреть результаты внизу, найти нужный и нажать на кнопку «Установить», находящуюся около программы.
- Произвести проверку подлинности учетной записи и ввести ее пароль.
- Дождаться окончания установки, которая может длиться пару минут.

Запуск Windows приложений в Linux
Запуск и настройка Wine
Как только симулятор запуска Windows программ на Linux установлен, появится соответствующая кнопка, позволяющая открыть его. Необходимо это для работы, а в случае первого запуска и для предварительных конфигураций.
Большинство настроек уже выполнено за пользователя и нет необходимости разбираться с них крайне детально. Несмотря на это, придется выполнить ряд действий до того, как запустится первый EXE файл.
Итак, запускают Вайн через менеджер приложений или командную строку. После окончания обновления параметров появится надпись о том, что нужно установить некоторые компоненты и фреймворки. Нужно согласиться и немного подождать. Через некоторое время появится графическое меню с пользовательской конфигурацией. Все параметры следует изучить и установить их по своему желанию. После этого следует перейти к первому запуску EXE файла в режиме эмуляции.
Запуск приложений Windows на Linux через Wine
Для того чтобы проверить, работает ли выбранная программа под Wine, необходимо найти ее в списке, который представлен по следующей ссылке . Даже если такого пункта в таблице нет, не стоит огорчаться, ведь попробовать запустить ПО никто не запрещал.
На данный момент Wine поддерживает огромное количество различных приложений с Виндовс, но лучше все же пользоваться списками. Там можно точно узнать, работает ли ПО под Вайн, как оно работает и не нужны ли «танцы с бубном» для запуска. Иногда встречается такое ПО, которое работает не совсем гладко или для его настройки приходится попотеть. Некоторые программы не работают вовсе.
Что касается игр, то тут ситуация складывается аналогичным образом. Часть проектов может работать без проблем, для некоторых нужны дополнительные настройки, а часть не будет работать ни под каким предлогом. Также в играх обязательна поддержка ДиректХ. Вначале Вайн поддерживал только девятую версию, но потом начался ввод DirectX 10 и 11. В 2015 году под ними не работало ничего, но ближе к 2019 году поддержку получили многие проекты.
Важно! Еще одной проблемой запуска является производительность в играх и 3D-приложениях. Если с программами, работающими с OpenGL все более-менее нормально, то ДиректХ явно теряет производительность, но это обещают исправить.
Запуск выглядит следующим образом:
- Скачивают или переносят на флешке необходимый файл с расширением EXE.
- Нажимают по нему правой клавишей мыши и выбирают пункт контекстного меню под названием «Открыть файл в другом приложении».
- В новом диалоговом окне выбирают строку «Wine – загрузчик Виндовс программ».
- Дожидаются открытия нового окна, в котором можно полноценно управлять программой, если она поддерживается Wine.
Если ПО портативное, то с ним работают сразу же, иначе – производят установку.

Выбор файла для загрузки в режиме «Emulator Windows»
Таким образом, было рассмотрено, как в Линуксе запустить файл с расширением EXE. На самом деле это очень просто сделать не только на Убунту, но и на Кали или Минте. Сам по себе Wine представляет оболочку Windows, которая взаимодействует с ней через тоннель API-функций. После установки ПО будет работать в фоновом режиме, и ожидать запуска EXE программ и установщиков.