- Как открыть.exe в Ubuntu без Wine или любого другого слоя совместимости с Windows?
- 3 ответа
- Как запустить exe на Linux — описание всех возможных способов
- Как запустить exe на Linux и возможно ли это сделать
- Что такое Wine для Линукс
- Использование эмулятора Виндовс для Линукс
- Установка Wine
- Запуск и настройка Wine
- Запуск приложений Windows на Linux через Wine
- Linux Maniacs
- 4/21/2009
- Учим Linux запускать exe файлы.
- Как запустить exe на Linux
- Немного теории
- Основы использования Wine
- Запуск exe программ в Linux с помощью wine
- Упрощённая установка exe в Linux
- Запуск Windows программ в виртуальной машине
- Выводы
Как открыть.exe в Ubuntu без Wine или любого другого слоя совместимости с Windows?
Я пытался открыть некоторые.exe файлы с вином, как Minecraft team extreme. Это бежало, но это отставало слишком сильно! Как запустить файл.exe без Windows/DOS/Wine?
3 ответа
Windows и Linux построены на совершенно разных бэкэндах и запускают совершенно разные типы программ.
Хотя есть эквивалентности, такие как .so объекты и .dll файлы, .exe файлы не совпадают с файлом оболочки.
Вы могли бы в очень контролируемых условиях с сильно настроенной ОС под названием Windows с темой Linux запустить .exe файл. Однако вы не сможете запускать исполняемые файлы Linux без установки слоя совместимости, такого как WSL и / или Cygwin. Обратите внимание, что вам все равно понадобится X-сервер и множество других вещей, чтобы все работало правильно.
Есть способы запустить exe файлы на обычном Linux, хотя:
- Возьмите скрипт оболочки Bash с именем test , Переименуйте это в test.exe , Вы запускаете EXE!
- Установите Wine. Как вы упомянули, это довольно медленно. Вы можете обойти это, не играя в игры. Вы можете попытаться настроить его для повышения производительности, изменив настройки Wine, но вы можете настроить его только так.
- Установите PlayOnLinux. Это специально разработанная версия Wine, которая несколько уменьшает лаги. Во-первых, у каждой программы есть свой экземпляр Wine. Это немного ускоряет работу ПК. Кроме того, PlayOnLinux автоматически оптимизирует Wine (включая выбор правильной версии!!), чтобы сделать вашу игру максимально качественной.
- Запустите ВМ. Вы можете использовать VirtualBox (бесплатно) для запуска лицензионной и зарегистрированной копии Windows. Это может вызвать все виды проблем, поскольку это будет медленнее, чем Wine.
- Просто Dual-Boot. Это даст вам максимальную производительность, но вам все еще нужна лицензионная копия Windows. Это также требует перезагрузки в Windows.
Нет действительно хороших способов запуска программ Windows в Linux, но это возможно.
Источник
Как запустить 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 программ и установщиков.
Источник
Linux Maniacs
Notes about linux and programming
4/21/2009
Учим 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 :
echo 1 > DOSWin
7. Для того чтобы удалить формат, нужно записать -1 в имя файла этого формата:
echo -1 > DOSWin
Источник
Как запустить exe на Linux
Рано или поздно может понадобиться запустить программы Windows на Linux. Для операционной системы Linux написано огромное количество программ, для решения одной определенной задачи, может быть даже несколько десятков программ. Но такая тенденция наблюдается только для широко распространенных задач, что же касается специализированных программ и игр, то тут ситуация совсем иная.
Программ, для решения узкоспециализированных задач, например, в той же сфере СЕО для Linux попросту нет, а игры начали появляться только последние несколько лет. Были и раньше простенькие игры с открытым исходным кодом, но популярные игры, класса ААА начали появляться только тогда, когда этой платформой заинтересовалась Valve. Но до сих пор ситуация с играми обстоит не так, как хотелось бы. Поэтому и возникает необходимость установки Windows программ в Linux.
Немного теории
Windows программы не могут запускаться просто двойным щелчком по исполняемому файлу. Формат исполняемых файлов Linux очень сильно отличается от Windows. Поэтому для их запуска необходимо использовать специальное программное обеспечение — wine. Название Wine образовано с помощью, почему-то популярного в мире свободного программного обеспечения способа — рекурсивный акроним, и расшифровывается как Wine is not emultor. И это правда, wine не является эмулятором.
Это программная оболочка, которая преобразует системные вызовы Windows программ в вызовы функций операционной системы Linux. Таким образом, wine представляет из себя прослойку между Windows программой и операционной системой Linux вместе с ее ядром и библиотеками.
Чтобы понять как работает Wine, нужно сначала сказать несколько слов о ядре Windows. У Windows, так же как и у Linux есть ядро. Как вы знаете ядро Linux состоит из одного файла и находится в папке boot. Ядро Windows совсем другое, по сути это набор dll библиотек, которые расположены в папке C:\windows\system32. Поэтому нам, чтобы заставить Windows программы работать в Linux достаточно реализовать dll библиотеки, которые нужны программе, так чтобы они вызывали необходимые нам функции из системы linux, что собственно и делает Wine. Но проект развивается очень медленно и разработчики не успевают реализовать все функции из системных библиотек Windows, поэтому работают далеко не все программы, особенно новые.
Популярные программы в Wine запускаются легко, и без дополнительных настроек. Но дело в том, что для решения популярных и востребованных задач в Linux есть достаточно альтернатив, а запускать нам придется специализированные программы и игры, требующие серьезных компонентов, еще не написанных в Wine. Вот тут и всплывает недоработанность этой программы. Но есть выход, его мы и рассмотрим дальше.
Основы использования Wine
Все файлы программ wine, установленные программы, библиотеки, файлы реестра, конфигурационные файлы находятся в домашнем каталоге, а точнее, в
Поскольку для разных программ, понадобится разная архитектура библиотек и нужно будет подменять на оригинальные библиотеки от windows разные файлы была придумана такая возможность, как префиксы.
/.wine это префикс, но мы можем создавать для каждой новой программы свой префикс и она будет работать только с ним. Чтобы задать префикс, с которым нужно работать wine используется переменная окружения WINEPREFIX, например:
Для разных программ может потребоваться различная архитектура системы, wine может запускать и 64 битные программы, но многим для правильной работы нужна архитектура х86.
Чтобы задать архитектуру используйте переменную WINEARCH. Например, для х86:
Также не создавайте папку для нового префикса с помощью mkdir или файлового менеджера, пусть программа сама создаст эту папку при своем первом запуске.
Прослойка совместимости Wine поддерживает далеко не все программы, чтобы проверить поддерживается ли программа Wine вы можете воспользоваться сайтом appdb.winehq.org здесь есть поиск и перечислены все поддерживаемые и не очень программы для Linux.
Запуск exe программ в Linux с помощью wine
Первым делом, надо посмотреть страницу программы на сайте appdb.winehq.com. Здесь есть поиск, поэтому вы можете попытаться искать нужную программу. Например, я хочу установить довольно популярную программу Notepad++. Cначала надо посмотреть поддерживается ли она Wine. Для этого на сайте есть поиск:
На странице программы есть версия Wine, с которой она была протестирована, версия тестируемой программы, а также оценка. Оценка может быть Platinum, Gold, Silver или ниже, она зависит от того насколько хорошо программа работает:
Как видите, программа тестировалась с версией wine 5.0 и работала довольно неплохо. К тому же на странице есть ссылка на загрузку программы, так как она бесплатна. Если при запуске программы возникают сложности, то на странице winehq обычно сообщается что надо сделать чтобы программу всё-таки запустить.
Если вам нужно запустить программу, полностью поддерживаемую Wine, например, проводник или notepad, достаточно выполнить:
$ wine /адрес/файла/программы.exe
Например, для программы Notepad++ надо выполнить:
Здесь я использую portable версию, её надо перед этим скачать и распаковать. Как видите, программа полностью работает:
Но как я уже говорил, нам придется запускать мало таких программ, большинство из них будут требовать функциональности, которая ещё не реализован в wine. Тогда нам придется заменить библиотеки Wine, на оригинальные библиотеки Windows.
Конечно, есть оболочки для Wine, которые автоматизируют этот процесс, например, Crossover, PlayOnLinux, Lutris и другие. Но мы рассмотрим ручной вариант.
Для установки компонентов Windows в wine существует специальный инструмент — winetricks. Устанавливать его лучше из сайта программы, так версия будет новее:
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
Чтобы установить нужный компонент достаточно передать имя этого компонента:
$ winetricks имя_компонента
С установкой компонентов более-менее понятно, но как узнать какие компоненты нужны? Скорее всего, вашу программу уже пытались устанавливать и другие пользователи нашли решение проблемы. Поэтому воспользуйтесь поиском Google для того, чтобы найти способы установки программы. Также очень полезным будет сайт appdb.winehq.org.
Давайте рассмотрим пример. Наберите в поиске по appdb.winehq.com программу Internet Explorer 8, это последняя версия программы, которую можно установить в Linux. Как видите, здесь бронза, значит программа поддерживается:
На её странице сообщается, что программа работает, но для её работы надо установить компонент msxml и urlmon:
winetricks msxml6 urlmon
После установки этих пакетов программа надо добавить ключ в реестр, который описан на странице winehq. После этого установщик запуститься и установит программу.
После установки вы можете её запустить:
Выглядит всё не очень, но зато работает. Инструкции не обязательно искать только на winehq, это могут быть различные форумы, блоги и так далее.
Остается вопрос, что же делать, если инструкций нет, информации минимум, а нужно чтобы программа работала. Мы можем анализировать вывод Wine при запуске программы. Причем нас будут интересовать не все сообщения из лога программы, а только последние, именно то что вызвало ошибку. Например если программа вывела:
fixme:richedit:ITextRange_fnEndOf (0xa04410)->(6 0 (nil)): stub
fixme:richedit:ITextRange_fnEndOf (0xa04410)->(6 0 (nil)): stub
fixme:richedit:ITextRange_fnEndOf (0xa04410)->(6 0 (nil)): stub
Осталось понять, что такое richedit, и Microsoft TechNet нам любезно сообщает что это их API и состоит оно из Riched32.dll, это последняя версия, но раньше это была riched20.dll, уже понимаете какие библиотеки нужны?
Их можно установить с помощью winetricks, но это делать необязательно, можно и вручную. Скачайте библиотеки, найти их не составит труда с помощью Google. Только ищите версию для Windows XP.
Копируем библиотеку в наш префикс, в папку system32:
Для 64 битных библиотек используется папка syswow64, а поскольку мы указали архитектуру 32 бит нужно и библиотеки использовать соответствующие. Затем запустите winecfg и на вкладке библиотеки, в поле новое замещение для библиотеки наберите *riched32, затем добавить и *riched20 и опять добавить:
Все, теперь можете пробовать запускать программу. Если программа снова падает с ошибкой, смотрите дальше логи и ищите библиотеки, которых ей не хватает.
Таким образом, вы можете заменить много библиотек Wine. Можно запустить практически любую программу, написанную несколько лет назад и не требующую сверх новых технологий. Достаточно только заменить нужные библиотеки. Вы можете не только использовать winetricks или копировать библиотеки из интернета, но и брать их прямо из Windows. Точно не стоит заменять gdi32.dll, kernel32.dll, и user32.dll — эти библиотеки реализуют функции ядра Windows на самом низком уровне, и если их заменить, это только нарушит работу Wine. Наверное, есть и другие библиотеки, которые нельзя заменять, но это вычисляется только путем экспериментов.
Упрощённая установка exe в Linux
Вариант, который мы рассмотрели выше слишком сложный и не очень то подходит для новичков. Специально для таких ситуаций были придуманы различные программные решения вроде PlayOnLinux или CrossOver. Это оболочки над wine, которые уже знают какие библиотеки надо ставить для той или иной программы. Вы просто выбираете программу, выбираете установщик, а дальше программа сделает всё за вас сама.
Утилита Crossover поддерживает множество программ и работают они довольно неплохо, но единственный минус этой программы в том, что она платная. Программа PlayOnLinux бесплатная, но поддерживает намного меньше программ.
Запуск Windows программ в виртуальной машине
Если ни один из перечисленных выше способов вам не помог, осталось только последнее решение. Оно поможет, при условии, что у вас мощный компьютер. Вы можете установить виртуальную машину VirtualBox, затем установить туда Windows и уже там запускать вашу программу. Можно пойти ещё дальше и сделать из старого компьютера сервер, на котором будет запущена Windows, к которой вы сможете подключаться по VNC или RDP и делать там всё, что угодно. Это не совсем способы запуска exe в Linux, однако это решение будет работать почти всегда, где не будет работать wine.
Выводы
Теперь вы знаете как запустить exe на Linux. Не пренебрегайте инструментами упрощения установки вроде PlayOnLinux. Они очень сильно экономят ваше время, так как имеют уже готовые профили для многих программ. Экспериментируйте и пусть ваши программы работают без ошибок!
Источник