можно ли установить программы для windows на linux
Как запускать Windows-программы в Linux?
Обновл. 30 Окт 2021 |
Рано или поздно большинство пользователей Linux сталкивается с ситуациями, когда нужно запустить определенную программу из Windows. Сейчас мы рассмотрим основные способы запуска Windows-приложений в Linux-системах.
Wine (акроним от «Wine Is Not an Emulator») — это проект по разработке свободной реализации Windows API, благодаря чему у пользователей Linux появляется возможность запускать Windows-приложения прямо в своей системе. Вместо имитации внутренней логики Windows подобно тому, как это делают виртуальные машины или эмуляторы, Wine «налету» преобразует вызовы Windows API в вызовы соответствующих POSIX-функций, обходя тем самым возможные проблемы недостаточной производительности программ, характерные для случаев использования эмуляторов, и позволяет полностью интегрировать Windows-приложения в Linux-систему.
Всё, что вам необходимо сделать, это установить Wine из репозиториев своего Linux-дистрибутива, затем скачать интересующее Windows-приложение и просто запустить его двойным щелчком мыши по .exe-файлу.
Также многие пользователи Linux применяют Wine в том числе и для запуска игр, например: BioShock, World of Warcraft, Starcraft, Fallout 3, The Elder Scrolls V: Skyrim и многих других. Чтобы получить представление о том, как будет работать то или иное Windows-приложение в Linux, посетите сайт базы данных приложений Wine.
Примечание: Не лишним будет упомянуть, что есть и коммерческая версия Wine от компании CodeWeavers, известная как Crossover.
Виртуальные машины
Виртуальные машины — это очень удобный способ запуска программного обеспечения Windows на вашем компьютере с Linux. По мере того, как компьютеры становились все более быстрыми, виртуальные машины становились сравнительно более легковесными.
Данный вариант включает в себя установку операционной системы Windows внутри одной из следующих виртуальных машин: VirtualBox, VMware или встроенного в Linux решения KVM (Kernel-based Virtual Machine). Современные решения для виртуальных машин позволяют запущенным внутри них программам взаимодействовать с вашим окружением так, словно они напрямую были на нем установлены:
Данный способ запуска Windows-приложений в Linux считается более надежным, в сравнении с Wine. Поскольку вы запускаете их на реальной системе Windows (внутри виртуальной машины), следовательно, значительно уменьшается шанс столкнуться с ошибками совместимости.
Поскольку копия Windows будет работать вместе с вашей Linux-системой, то это потребует дополнительных аппаратных затрат. В частности, требовательные компьютерные игры, которым необходим доступ к видеокарте вашего компьютера, могут испытывать проблемы — для них лучшим вариантом станет Wine. Но для не нуждающихся в особой производительности приложений (например, Microsoft Office или легковесные игры), виртуальные машины — это отличное решение.
Мультизагрузка
Мультизагрузка технически не является способом запуска программного обеспечения Windows в самом Linux, но часто многие пользователи Linux выбирают именно этот вариант работы с Windows-программами. Вместо того, чтобы запускать Windows-приложения непосредственно в Linux-системе, вы просто перезагружаете компьютер, выбираете Windows для загрузки и полноценно работаете в данной ОС. Таким образом, на вашем компьютере будут одновременно установлены две системы (Windows и Linux), а благодаря использованию SSD-дисков процесс загрузки выбранной системы вы сможете ускорить в разы, минимизировав время ожидания.
Данный вариант идеально подойдет геймерам: вы просто перезагружаете компьютер и играете в совместимые только с Windows игры. Поскольку при этом задействуется обычная Windows, работающая непосредственно на вашем железе, то вам не придется сталкиваться с какими-либо проблемами совместимости или падением производительности.
Лучший способ настроить Мультизагрузку — это сначала установить Windows (если на вашем компьютере уже присутствует Windows, то этого будет достаточно), а затем установить дистрибутив Linux. После этого вы сможете выбирать предпочитаемую операционную систему при каждой загрузке компьютера.
Примечание: Стоит отметить еще о таком механизме как WSL. Устанавливая дистрибутив Linux совместно с Windows 10 через WSL вы получаете только командную оболочку выбранного вами дистрибутива без какого-либо графического интерфейса (т.е. без окружения рабочего стола и приложений с графическим интерфейсом). Установить дополнительно приложения с графическим интерфейсом вы сможете, но через сторонние приложения.
Что же выбрать?
Какой вариант выбрать, зависит от ваших целей:
Если вам нужно запустить одно приложение или игру из Windows, которые хорошо работают в Wine, то Wine будет идеальным решением для вас.
Если вам нужно запускать несколько не очень ресурсоемких Windows-программ, то хорошим вариантом будет виртуальная машина.
Если вы геймер, который хочет играть в новейшие игры для Windows, но при этом хотите иметь возможность использовать Linux-систему, мультизагрузка является для вас идеальным решением.
Поделиться в социальных сетях:
Как запустить exe на Linux
Рано или поздно может понадобиться запустить программы Windows на Linux. Для операционной системы Linux написано огромное количество программ, для решения одной определенной задачи, может быть даже несколько десятков программ. Но такая тенденция наблюдается только для широко распространенных задач, что же касается специализированных программ и игр, то тут ситуация совсем иная.
Программ, для решения узкоспециализированных задач, например, в той же сфере СЕО для Linux попросту нет, а игры начали появляться только последние несколько лет. Были и раньше простенькие игры с открытым исходным кодом, но популярные игры, класса ААА начали появляться только тогда, когда этой платформой заинтересовалась Valve. Но до сих пор ситуация с играми обстоит не так, как хотелось бы. Поэтому и возникает необходимость установки Windows программ в Linux.
Немного теории
Это программная оболочка, которая преобразует системные вызовы 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 и другие. Но мы рассмотрим ручной вариант.
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 и опять добавить:
Все, теперь можете пробовать запускать программу. Если программа снова падает с ошибкой, смотрите дальше логи и ищите библиотеки, которых ей не хватает.
Упрощённая установка exe в Linux
Вариант, который мы рассмотрели выше слишком сложный и не очень то подходит для новичков. Специально для таких ситуаций были придуманы различные программные решения вроде PlayOnLinux или CrossOver. Это оболочки над wine, которые уже знают какие библиотеки надо ставить для той или иной программы. Вы просто выбираете программу, выбираете установщик, а дальше программа сделает всё за вас сама.
Утилита Crossover поддерживает множество программ и работают они довольно неплохо, но единственный минус этой программы в том, что она платная. Программа PlayOnLinux бесплатная, но поддерживает намного меньше программ.
Запуск Windows программ в виртуальной машине
Если ни один из перечисленных выше способов вам не помог, осталось только последнее решение. Оно поможет, при условии, что у вас мощный компьютер. Вы можете установить виртуальную машину VirtualBox, затем установить туда Windows и уже там запускать вашу программу. Можно пойти ещё дальше и сделать из старого компьютера сервер, на котором будет запущена Windows, к которой вы сможете подключаться по VNC или RDP и делать там всё, что угодно. Это не совсем способы запуска exe в Linux, однако это решение будет работать почти всегда, где не будет работать wine.
Выводы
Теперь вы знаете как запустить exe на Linux. Не пренебрегайте инструментами упрощения установки вроде PlayOnLinux. Они очень сильно экономят ваше время, так как имеют уже готовые профили для многих программ. Экспериментируйте и пусть ваши программы работают без ошибок!
Как запустить Windows-приложение в Linux?
Всем привет! Практически у всех начинающих пользователей Linux, которые только перешли с Windows, возникает один и тот же вопрос – а как в Linux запустить программу (игру), которая была в Windows? Иными словами, как запустить программу или игру, которая была разработана для Windows, в Linux, т.е. в другой операционной системе. В этом материале я расскажу Вам, можно ли это сделать, и если можно, то как.
Можно ли запустить Windows-приложение в Linux?
Для начала обязательно отмечу, что Linux – это совсем другая платформа, не Windows и не совместимая с ней, поэтому абсолютно любая программа или игра, разработанная для Windows, запускается только на Windows.
На заметку! Новичкам рекомендую почитать мою книгу «Linux для обычных пользователей» – в ней я подробно рассказываю про основы операционной системы Linux, и как пользоваться этой системой без командной строки.
Однако, так как эти вопросы задаются, и возник спрос, существует возможность запускать Windows-приложения в Linux, но это не стандартная возможность, которая не гарантирует нормального функционирования программы, да и не все программы так можно запустить, а еще к тому же, за счет того, что запускаются именно Windows-приложения, значительно снижается безопасность системы. Поэтому лучше не использовать возможность, которую я опишу чуть ниже, а пользоваться стабильными приложениями, разработанными именно для Linux.
Обзор инструментов Wine, Winetricks и PlayOnLinux
Итак, если у Вас все-таки остро стоит задача запустить Windows-кую программу в Linux, то существует специальная программа под названием Wine.
Wine – это альтернативная реализация Windows API.
Иными словами, Wine создает условия для запуска Windows-программ в Linux. При этом Wine – это не эмулятор, т.е. это не виртуальная машина, она не эмулирует оборудование, не эмулирует операционную систему, как я уже отметил, она является альтернативной реализацией Windows API, что и позволяет запускать Windows-программы в Linux.
Но как я уже отметил, совместимость программ не полная, не все программы поддерживаются, а те, которые поддерживаются, могут работать некорректно. В то же время большинство популярных программ работают в Wine очень даже неплохо, например, есть возможность запустить даже Microsoft Office.
Для упрощения установки и запуска Windows-программ в Linux разработчики также придумали специальные вспомогательные инструменты, которые упрощают всю эту работы.
К таким инструментам относится скрипт Winetricks.
Winetricks – скрипт для загрузки и установки различных распространённых библиотек, необходимых для запуска некоторых программ в Wine. Winetricks автоматически создаёт для программ правильные настройки и скачивает требуемые для их работы компоненты.
Winetricks – скрипт для упрощения работы с Wine.
Еще одним инструментом для упрощения установки Windows-приложений в Wine является программа – PlayOnLinux. Она создана для автоматизации установки программ и игр, созданных для Windows в Linux, т.е. она может автоматически скачать и установить некоторые программы (игры). Также PlayOnLinux в случае необходимости может скачать специальную версию Wine вместе с настройками для конкретной программы, и даже применять к программе некоторые исправления для того, чтобы добиться более стабильной работы.
PlayOnLinux – графическая программа, надстройка над Wine, которая упрощает установку и использование программ и игр в Linux, которые были разработаны для Windows.
По факту PlayOnLinux – это что-то вроде менеджера программ с графическим интерфейсом, в котором уже по умолчанию отображаются программы, которые можно установить, т.е. Вы просто выбираете программу и запускаете установку. И тем самым по сути, если программа есть в списке PlayOnLinux, то Вы сможете установить ее и запустить в Linux, для этого выполнив всего несколько простых шагов мастера.
Однако работа с PlayOnLinux и, в частности, с Wine непредсказуемая, иными словами, стандартного сценария установки программ нет, в процессе установки любой программы могут (и, наверное, будут) появляться различные ошибки, например, отсутствие какого-нибудь пакета или еще что-нибудь.
Поэтому установка Windows-приложений в Linux — это дело индивидуальное, и рассчитывать на стандартный способ установки не приходится. А лучше вообще использовать приложения на той платформе, для которой они были разработаны, т.е. Windows-приложения на Windows, а Linux-программы на Linux.
Но, как говорится, если Вы не ищете легких путей, то можете установить Wine или PlayOnLinux, и пробовать устанавливать различные Windows-приложения.
Установка и запуск Windows-приложения в Linux
Теперь давайте я покажу, как установить и запустить Windows-приложение в операционной системе Linux, в качестве примера я возьму программу Notepad++, которая была разработана для Windows, т.е. версии для Linux на текущий момент у этой программы нет.
Шаг 1 – Установка Wine
Сначала необходимо установить программу Wine. Пример установки Wine можете посмотреть в материале – Установка Wine в Linux Mint, в этой статье я подробно рассказывал и показывал, как установить Wine в дистрибутиве Linux Mint.
После того, как Wine Вы установили, повторно, для установки другой программы, Wine устанавливать не нужно.
Шаг 2 – Скачивание установочного файла программы
Следующее, что нужно сделать, это, конечно же, скачать установочный дистрибутив программы, в нашем случае Notepad++, т.е. так же, как и в Windows, Вам необходимо скачать ровно тот же самый установочный файл, который Вы бы использовали, если устанавливали программу на Windows.
Шаг 3 – Установка программы
После того как Вы установили Wine, Вы можете запускать exe файлы точно так же, как и в Windows.
Таким образом, для запуска установки программы мы просто щелкаем двойным кликом по скаченному файлу.
Потом программа Wine попросит загрузить и установить необходимые для корректной работы пакеты (в случае их отсутствия в системе). Нажимаем «Установить» и ждем окончания процесса установки этих пакетов.
После чего запустится установка программы, в нашем случае установка Notepad++, и этот процесс ничем не будет отличаться от установки в Windows, ведь это тот же самый установщик.
Более подробно посмотреть на процесс установки Notepad++ Вы можете в материале – Установка Notepad++ в Linux Mint
Шаг 4 – Запуск программы
После окончания установки ярлык программы появится в меню, а также на рабочем столе, если Вы поставили соответствующую галочку в процессе установки программы.
Для того чтобы запустить программу, просто щелкаете по ярлыку.
Как видите, в нашем случае проблем с установкой программы в Linux не возникло, но так бывает далеко не всегда, ведь установка Windows-приложений в Linux, как я уже говорил, это дело индивидуальное и непредсказуемое, и в большинстве случаев будут появляться различные ошибки.
Да и тогда, когда установка пройдет успешно, никто не дает гарантии, что приложение будет работать корректно, т.е. так же как в Windows.
Видео-инструкция
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Может ли Linux запускать EXE-файлы Windows?
Linux, без сомнения, является лучшей альтернативой Microsoft Windows с открытым исходным кодом, но можно ли запускать программы Windows на ОС на базе Linux?
Пользователи, недавно перешедшие с Windows на Linux, часто задаются вопросом, можно ли запускать приложения и программы Windows на новой системе. Ответ на этот вопрос влияет на представление пользователя о Linux в целом, поскольку операционные системы должны быть простыми в использовании и в то же время доброжелательными к идее работы с файлами различных форматов.
Прямой ответ на этот вопрос – да. Вы можете запускать EXE-файлы и другие программы Windows в Linux, и это не так сложно, как кажется.
К концу статьи вы получите краткое представление об исполняемых файлах, а также о различных способах запуска этих программ в Linux.
Исполняемые файлы в Windows и Linux
Прежде чем запускать файлы EXE в Linux, важно знать, что такое исполняемые файлы. Вообще говоря, исполняемый файл – это файл, содержащий команды для компьютера на выполнение определенных инструкций (как написано в коде).
В отличие от других типов файлов (текстовых файлов или PDF), исполняемый файл не читается компьютером. Вместо этого система компилирует такие файлы, а затем выполняет соответствующие инструкции.
Некоторые распространенные форматы исполняемых файлов включают:
Внутренние различия в операционных системах (в основном системные вызовы и доступ к файлам) являются причиной того, что ОС не поддерживает все доступные форматы исполняемых файлов. Но пользователи Linux могут легко решить эту проблему, используя либо программное обеспечение уровня совместимости, такое как Wine, либо гипервизор виртуальных машин, такой как VirtualBox.
Способы запуска программ Windows в Linux
Запуск приложений Windows в Linux – это не ракетостроение. Вот различные способы запуска EXE-файлов в Linux:
Использование уровня совместимости
Уровни совместимости Windows могут помочь пользователям Linux запускать файлы EXE в своей системе. Wine, сокращение от Wine Is Not an Emulator, является популярным слоем совместимости Windows, который соответствует своему названию.
В отличие от эмуляторов и виртуальных машин, Wine не запускает программу в Windows-подобной среде, созданной в системе Linux. Вместо этого он просто преобразует системные вызовы Windows в эквивалентные им команды POSIX.
В целом, уровни совместимости, такие как Wine, отвечают за преобразование системных вызовов, реформирование структуры каталогов и предоставление программе системных библиотек, специфичных для ОС.
Установка и использование Wine для запуска Windows-программ в Linux очень просты. После установки вы можете выполнить следующую команду для запуска EXE-файла с помощью Wine:
Пользователи Linux, которые хотят играть в игры только для Windows, могут выбрать PlayOnLinux, внешнюю обертку для Wine, или PortProton. PortProton – поможет вам запускать все современные игры windows в linux.
Запуск Windows внутри виртуальной машины
Другим обходным решением является запуск EXE-файлов Windows с помощью виртуальных машин. Гипервизор виртуальных машин, такой как VirtualBox, позволяет пользователям устанавливать вторичную операционную систему, которая работает в рамках их основной ОС.
Для этого достаточно установить VirtualBox, KVM или VMWare, создать новую виртуальную машину и установить на ней Windows. Затем вы можете просто запустить виртуальную машину и запустить Windows внутри вашей ОС на базе Linux. Таким образом, вы сможете запускать EXE-файлы и другие программы, как это обычно делается на компьютере только с Windows.
Кроссплатформенная разработка программного обеспечения – это будущее
В настоящее время огромная доля доступного программного обеспечения ориентирована исключительно на одну операционную систему. Большинство приложений, которые вы можете найти, доступны исключительно для Windows, macOS, Linux или комбинации этих ОС. Редко когда удается установить программу, работающую на всех основных операционных системах.
Но все это меняется с развитием кроссплатформенности. Разработчики программного обеспечения теперь создают приложения, которые могут работать на нескольких платформах. Spotify, медиаплеер VLC, Sublime Text и Visual Studio Code – вот некоторые примеры кроссплатформенного программного обеспечения, доступного для всех основных операционных систем.