- Как запустить Windows-приложение в Linux?
- Можно ли запустить Windows-приложение в Linux?
- Обзор инструментов Wine, Winetricks и PlayOnLinux
- Установка и запуск Windows-приложения в Linux
- Шаг 1 – Установка Wine
- Шаг 2 – Скачивание установочного файла программы
- Шаг 3 – Установка программы
- Шаг 4 – Запуск программы
- Видео-инструкция
- Linux для Windows. Запускаем полноценный десктоп Ubuntu внутри Windows 10
- Содержание статьи
- WARNING
- WSL. Полгода спустя
- Xakep #216. Копаем BitLocker
- X Window, Unity и все-все-все
- WARNING
- История ненависти и любви
- «Дайте ей шанс!»
- Промежуточные итоги
Как запустить 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 для Windows. Запускаем полноценный десктоп Ubuntu внутри Windows 10
Содержание статьи
По сравнению со сборкой Windows 10 14316, в которой впервые появилась подсистема Linux, в Windows 10 Anniversary Update подсистема выглядит вполне работоспособной и применимой на практике (настолько, насколько это возможно на данном этапе). Стабильность работы не вызывает нареканий. Забегая вперед, отмечу самое главное — в WSL появилась возможность запуска графического окружения и других GUI-программ (из числа DE это пока что Unity и Xfce), чего не было в предыдущих сборках Windows 10. Пока это было сделано неофициально, отдельными энтузиастами-линуксоидами, а не разработчиками WSL, но есть надежда, что официальная поддержка запуска полноценного Linux GUI в WSL лишь дело времени.
Unity поверх Windows 10. И это не эмулятор
WARNING
Помни: сначала WSL необходимо установить. Из коробки подсистема не заработает.
WSL. Полгода спустя
Как я уже сказал, за последние полгода разработчики WSL успели основательно доработать эту подсистему, что упростило ее установку и настройку. А сама Microsoft успела стать «платиновым» членом Linux Foundation. Лет пятнадцать назад о таком нельзя было даже мечтать. В своем новом качестве Microsoft обязалась поддерживать все инициативы Linux Foundation в области открытого ПО и Linux и ежегодно перечислять в фонд 500 тысяч долларов США. Это, безусловно, большое достижение. В первую очередь для всего сообщества FOSS (free/libre and open-source software — бесплатное/свободное и открытое программное обеспечение). Через пятнадцать лет после того, как Стив Балмер назвал Linux раковой опухолью, новое руководство Microsoft оказалось куда более дальновидным и разумным.
Но вернемся к Windows Subsystem for Linux. Установка собственно Windows 10 проходит быстро и просто (почти как установка Ubuntu), и нет нужды описывать ее нашему читателю. Ты можешь выбрать либо обновление из предыдущей версии Windows 10, что займет в разы больше времени и сил, либо удалить предыдущую версию и установить систему с нуля (что я и сделал, и не из лени, а чистоты эксперимента для, чтобы система была, что называется, девственно-чистой). Автор этих строк вот уже больше года является бета-тестером Windows 10, и новые версии доступны ему бесплатно (от слова совсем). Если ты тоже бета-тестер, то у тебя должна быть лицензия на новые бета-релизы Windows 10.
В последнюю версию Windows, Anniversary Update 1607 — «юбилейное обновление» (непонятно, правда, что за юбилей у MS), WSL включается по умолчанию. Надо лишь активировать «Режим разработчика» в разделе «Обновление и безопасность», дождаться, пока система загрузит так называемый пакет разработчика, и перезагрузить компьютер. После чего запустить инструмент «Включение и отключение компонентов Windows», где выбрать пункт «Подсистема Linux для Windows. ». И снова перезагрузить компьютер.
В русской версии Windows 10 все немного иначе, но общий смысл такой же
Xakep #216. Копаем BitLocker
Установка bash в WSL проходит без проблем (хотя и не так быстро, как хотелось бы). Мне не удалось с первого раза установить Unity: инсталлятор постоянно ругался на битые пакеты. Как оказалось, сначала нужно было обновить систему через штатный менеджер пакетов Ubuntu — APT. После получения обновлений установка пошла как по маслу и. продлилась на моем тестовом Dell Inspiron (не самый старый ноутбук, хотя и не топовый) около девяти с половиной часов. Почему — тайна сия мне неведома. Однако я заметил, что каждый Ubuntu-пакет устанавливался раза в три-четыре дольше, чем в «чистой» Ubuntu.
Инсталляция bash сводится к одной команде в консоли Windows 10
Перед установкой и включением WSL обязательно установи ВСЕ обновления Windows 10. Иначе могут возникнуть проблемы!
X Window, Unity и все-все-все
Установка bash — это лишь полдела. Дальше начинается самое интересное — установка и настройка X-сервера в Windows и запуск графических приложений, в том числе и Unity.
Изначально Canonical и Microsoft добавили возможность запуска Ubuntu поверх Windows 10 для того, чтобы предоставить системным администраторам и разработчикам возможность использования bash и других Linux-инструментов и утилит, таких как make, gawk и grep, непосредственно в Windows. Пользователи Linux, как истинные хакеры (в хорошем смысле этого слова), не заставили себя долго ждать и немедленно приступили к работе над запуском графических окружений рабочего стола в WSL. И угадай, что? Они сделали это. Гватемальский программист, зарегистрированный на GitHub под ником Guerra24, смог (цитата) «запустить Unity (рабочее окружение по умолчанию в Ubuntu) внутри WSL. Это говорит о том, что прослойка от Microsoft, в принципе, вполне способна запускать любые окружения рабочего стола».
Задача эта нетривиальная, и то, что в итоге получится, трудно назвать полноценным рабочим столом Linux, но это только начало. Если ты хочешь использовать рабочий стол Ubuntu в Windows 10 в практических целях, то лучше воспользуйся любой из доступных в данный момент виртуальных машин, например VirtualBox от Oracle. А вот если ты просто хочешь повеселиться и прокачать свои навыки программирования для рабочих столов, то можешь попробовать запустить «нативный» Linux прямо в Windows 10. Для запуска Unity в WSL тебе для начала нужно установить (любым доступным способом, желательно легальным!) версию Windows 10 Anniversary Update за номером 1607. Причем не «домашнюю» версию, а самую что ни на есть «профессиональную», а то и вовсе «корпоративную». После установки обязательно обнови систему и двигайся дальше.
После двух (иногда трех) перезагрузок в процессе обновления, чтобы установить bash, необходимо запустить командную строку Windows (Win + R, ввести cmd — и будет тебе счастье в виде «консоли» Windows) и ввести. да, именно так: bash. Будет предложено согласиться с условиями обслуживания (обязательно прими их, выбора у тебя нет!) и загрузить Ubuntu. На этом этапе тебе нужно просто нажать клавишу Y. Объем загружаемых файлов будет не многим более одного гигабайта. Так что, если у тебя медленный интернет (да, бывает и такое), приготовься ждать. Затем начнется установка, которая, в свою очередь, тоже займет некоторое время, зависящее от производительности компьютера. И в конце всего этого ты попадешь в пространство пользователя (пользовательское окружение) Ubuntu 14.04, работающее поверх WSL.
Технически ты запустишь не Linux. Оно может выглядеть как Linux, но это не Linux. Дело в том, что пользовательское окружение (тот самый bash и прочие) работает не поверх ядра Linux, а внутри прослойки WSL. WSL использует специальный API и набор инструкций, для того чтобы все выглядело как в Linux, но все же это не то же самое. В основе всего этого все еще стоит ядро Windows NT. Это важно понимать, чтобы разобраться в том, как запускается и работает Unity в WSL.
После установки Ubuntu обязательно обнови ее, введя стандартные для этого команды:
VcXsrv — X-сервер для Windows
Далее нужно снова вернуться в Windows 10 и установить совместимый с ней X-сервер. Для нашего эксперимента идеально подойдет VcXsrv. Его собрата Xming лучше не использовать, так как с ним, по неизвестной мне причине, возникает проблема: при попытке запустить любое графическое приложение для Linux все просто вылетает, в том числе и консоль Windows. Но это не все. Нужно сказать Ubuntu о том, что следует использовать именно X-сервер VcXsrv. Для этого введи в bash команду
Теперь любое графическое приложение Linux будет работать в Windows 10. Но только до закрытия bash. Чтобы WSL работала с графикой Linux все время, автоматически выбирая нужный для работы X-сервер, просто добавь указанную строку в конец конфигурационного файла bash (
VcXsrv — X-clock в Windows. Магия!
Firefox для Ubutnu работает отлично, почти не тормозит!
После этого ты сможешь запускать любые графические приложения Linux, например Firefox или любое DE. Однако они будут работать не так, как в Linux, падая каждую минуту, а некоторые, например Unity, и вовсе не запустятся. Проблема тут в том, что WSL не содержит в себе кода поддержки сокетов (универсальная концепция обмена данными между процессами в UNIX-подобных системах, подробности тут).
Для имплементации концепции сокетов графические окружения Linux по умолчанию используют систему обмена сообщениями D-bus. Большинство графических приложений Linux не смогут даже запуститься без D-bus, не то что работать. Но WSL, к счастью, поддерживает сетевой протокол TCP, что и подвигло пользователя Reddit.com под ником ShaRose найти способ заставить D-bus использовать вместо сокетов протокол TCP. Решение не идеальное, но оно работает. Чтобы «прикрутить» D-bus к TCP, введи в bash:
Самое главное — правильно указать дисплей!
Этой командой ты изменишь конфигурационный файл D-bus так, чтобы отныне он использовал TCP вместо сокетов. В этом тебе поможет старый добрый потоковый редактор sed. Что в итоге? Приложения, требующие для своей работы D-bus, теперь запускаются и в WSL.
Следующий шаг — установка графических приложений Linux. Для начала сделай в консоли WSL вот это:
Долгая установка Unity.
Первая команда установит основные графические компоненты Ubuntu, в том числе программы для конечного пользователя, такие как LibreOffice. Следующая команда устанавливает рабочий стол Unity. Две остальные команды поставят композитный оконный менеджер Compiz, использующий OpenGL, и графический фронтенд к нему. Именно его и нужно будет правильно настроить на следующем этапе.
Перед тем как начать пользоваться окружением рабочего стола Unity в Windows 10, тебе необходимо правильно настроить CompizConfig Settings Manager (CCSM). После установки всех этих приложений запусти из интерфейса bash CCSM и активируй в нем следующие плагины (все должно быть ИМЕННО так, как на скриншоте!):
Настройки Compiz
В секции General (Общие):
- Commands (Команды)
- Composite
- Copy to texture
- OpenGL
В секции Desktop (Рабочий стол):
В секции Utility (Утилиты):
В секции Window Management (Управление окнами):
- Place Windows (Переместить окно)
- Resize Window (Изменение размеров окна)
- Scale (Масштабировать)
- Snapping Windows
- PNG
Далее, чтобы все наконец заработало, закрой CCSM и запусти Compiz из bash командой
Примерно через минуту ты увидишь запущенную оболочку Unity.
Unity во всей красе
Отмечу несколько ключевых моментов:
- Если ты и правда хочешь запускать иксовые приложения в WSL, устанавливай в качестве X-сервера VcXsrv, а не Xming. Опытным путем доказано, что Xming не желает нормально работать с WSL.
- После установки CCSM необходимо настроить его именно так, как показано на картинке (то есть включить то, что отмечено галочками, и выключить все остальное). Только тогда Unity со скрипом, не с первой попытки, но запустится.
- Лучше не устанавливать проприетарные драйверы ATI для Ubuntu внутри WSL. Это приводит к полному зависанию всей системы (в том числе и Windows 10) и влечет за собой тотальную переустановку WSL со всеми вытекающими.
- Огорчу тебя: не стоит возлагать на получившийся костыль большие надежды. Нормально ЭТО работать не будет. Но на моей тестовой машине Unity внутри WSL работала вполне сносно. Субъективно — чуть медленнее, чем в нативном Linux. Быть может, в будущем кто-нибудь доведет все это дело до ума. И от Unity в WSL таки будет польза.
Что же получится в итоге, после стольких мучений? А в итоге (теоретически, так как на практике выходит пока просто интересный экспериментальный способ запуска Unity и прочих DE внутри WSL) мы получим среду для тестирования Linux-приложений прямо внутри Windows. И Unity, работающую поверх Windows. Конечно, скорость работы и отзывчивость ее не такие, как на реальном железе, но все же быстрее, чем в виртуальной машине. Многие приложения, например Google Chrome или Pidgin, просто не запускаются. А вот Firefox, файловый менеджер, магазин приложений и прочие системные утилиты Ubuntu работают на ура (чуть медленней, чем в «настоящей» Ubuntu, но работают!).
WARNING
Установить WSL можно только в версиях Windows 10 «Профессиональная» и «Корпоративная». «Домашняя» не годится.
История ненависти и любви
Издавна Microsoft питала особые чувства к Linux в частности и ко всему миру FOSS в целом. И чувства эти, надо сказать, как правило, были не самыми теплыми — начиная со знаменитого «Открытого письма любителям» Билла Гейтса, написанного в далеком 1976 году (подробности в Вики), где автор обвинял пользователей персональных компьютеров (которые в те доисторические времена были и пользователями, и программистами, и хакерами!) чуть ли не в воровстве его интеллектуальной собственности (того самого бейсика), и заканчивая гневными высказываниями Стива Балмера в 2001 году по поводу Linux: «Linux — это раковая опухоль, которая пожирает всю интеллектуальную собственность, к которой прикасается. Согласно правилам лицензии, если вы используете какие-либо компоненты программного обеспечения с открытым исходным кодом, вы должны открыть код всего имеющегося у вас программного обеспечения».
Спустя пятнадцать лет, однако, Стив смягчил свою позицию: в марте 2016 года бывший генеральный директор Microsoft заявил, что рад видеть, что новый глава компании Сатья Наделла принял решение активнее поддерживать сообщество разработчиков открытого ПО, и «с удовольствием» (loved) наблюдал за анонсом MS SQL Sever для Linux. Во многом такой разворот бывшего гиганта софтверной индустрии — это заслуга сообщества FOSS. Тех тысяч и тысяч программистов, дизайнеров, майнтейнеров, FOSS-активистов и просто неравнодушных людей, которые годами «точили камень, аки вода».
Еще в середине 2000-х годов MS начала менять свою позицию в отношении FOSS. И это не пустые слова, а дела. Даром что ли не так давно Microsoft получила статус «платинового» участника Linux Foundation — главной организации, курирующей разработку Linux, высказала приверженность идеям разработки FOSS-сообщества. Ну и само существование WSL тому подтверждение. Спустя сорок с небольшим лет мы наблюдем, как некогда непримиримые идеологические (и не только идеологические) противники начали работать бок о бок, сообща делая мир лучше. Ну или хотя бы пытаться.
Спустя пятнадцать лет Стив Балмер, по сути, признал свою неправоту
То самое письмо Билла Гейтса в защиту копирайта
На данный момент апогеем такого симбиоза можно считать Windows Subsystem for Linux. Да, прослойка пока далека от совершенства. Но направление выбрано верное. И той и другой стороной.
«Дайте ей шанс!»
«Дайте Windows Subsystem for Linux шанс, и вы будете поражены», — говорят в Microsoft. Microsoft наконец-то признала потенциал мира FOSS в целом и Linux в частности. И каждое событие становится для Microsoft уроком, позволяющим оценить свои возможности и расширить свою деятельность в этой области программирования.
Совсем недавно, 16 ноября прошлого года, на сайте Microsoft для разработчиков появился пост с видеороликом под названием «Улучшения в bash на Windows и консоли Windows», в котором старший программист Microsoft Рич Тёрнер призывает Linux-разработчиков взглянуть на то, что Windows 10 может им предложить. «Установите экземпляр сборки Windows 10 для разработчиков (Windows 10 Insider Preview Build) и исполняйте свой код, используйте привычные вам инструменты, размещайте свои сайты на Apache, получайте доступ к своим базам данных MySQL непосредственно из вашего Java-кода», — говорит Тёрнер.
Новое, дружелюбное лицо Microsoft — Рич Тёрнер
Тёрнер особо отметил, что WSL была создана специально для разработчиков с целью предоставить последним все необходимые инструменты разработки для Linux. И все это, по его словам, без потери новшеств и преимуществ Windows 10. «Независимо от того, какие инструменты вы обычно используете в Linux для создания приложений, будь то Go, Erlang или C, дайте шанс WSL, а самое главное, отправляйте нам отчеты об ошибках. Эти отчеты действительно делают нашу жизнь намного проще, позволяя нам создавать продукт, который мы все можем использовать, чтобы работать более плодотворно», — продолжил он.
Разумеется, Microsoft сама заинтересована в улучшении WSL, и Тёрнер утверждает, что конечная цель всего этого состоит в том, чтобы сделать эту подсистему полностью совместимой со всеми инструментами разработки для Linux. И, по их словам, любой, кто перейдет на Windows 10, будет чувствовать себя так же комфортно, как и в Linux. А это, в свою очередь, обеспечит Microsoft приток новых пользователей. «Пока мы только в самом начале. Нам предстоит долгий путь. В данный момент нельзя сказать, что эта штука действительно полностью совместима с Linux-инструментами и готова к полноценному использованию вами», — сказал он. Это заявление стало для многих людей сюрпризом. Однако, как уже говорилось, Сатья Наделла, нынешний глава софтверного гиганта, применит в отношении FOSS и Linux иной подход, рассматривая открытый и свободный код в качестве источника дохода и новых возможностей.
Отдельно отмечу, что Рич Тёрнер в своей речи не призывает разработчиков отказаться от Linux и нисколько не умаляет преимущества этой ОС, а лишь просит дать WSL шанс.
Промежуточные итоги
Что хотелось бы сказать в связи со всем этим? Во-первых, Microsoft уже не та. Не та монструозная корпорация зла. С каждым годом прибыли компании от продажи ПО падают, рынок мобильных устройств, по сути, отдан на откуп Google и Apple, а пользователи (как корпоративные, так и домашние) всё чаще стараются сэкономить на покупке софта. И компании приходится адаптироваться к новым условиям. Даже «заклятый друг» MS — Apple открывает исходники своих продуктов один за другим. Во-вторых, это все очень хорошо. В первую очередь для нас, простых пользователей.
В следующей статье про Windows Subsystem for Linux мы проведем несколько тестов на производительность и попробуем наконец WSL на практике, установив на нее веб-сервер Apache и запустив локальный хостинг сайта. А пока можно промежуточно резюмировать, что эксперимент удался.