Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Советы
  • Как установить программы windows на linux. Как мы сделали Linux из Windows: новые способы запуска никсовых приложений под виндой

Как установить программы windows на linux. Как мы сделали Linux из Windows: новые способы запуска никсовых приложений под виндой

Привет, Хабр! Я хочу поделиться с вами идеей о создании Linux-дистрибутива с полной поддержкой Windows приложений. Все началось около 4-х лет назад, когда я в первый раз установил Linux. Тогда меня очень заинтересовала эта ОС, но поначалу все было очень непривычно, так как мне не хватало некоторых приложений из Windows, к которым я сильно привык. В итоге приходилось на другом разделе держать установленную Windows и это сильно раздражало. По мере изучения Linux я узнал о такой программе как Wine, а позже о VirtualBox. Если быть честным, то Wine не особо доставлял, так как некоторые приложения на нем заводились с пол тыка, а другие занимали уйму времени на поиски информации и ковыряния Wine"а. VirtualBox в то время сильно помог, так как дал мне почти полную интеграцию Windows с Linux. Сейчас я полностью перешёл на Linux и почти не пользуюсь Windows на VirtualBox"е, но у меня осталась одна идея, которую хотелось бы реализовать.

Итак, пользуясь Windows через VirtualBox, я подумал о том, чтобы максимально интегрировать ее в Linux и использовать как некую обёртку для запуска Windows-приложений прямо в Linux"е. Дальше я начал продумывать, как организовать мою идею и придумал решение по интеграции.

Как и что будем интегрировать?

Интерфейс
Основой интеграции будет VirtualBox в бесшовном режиме. Так как для Linux"а все Windows-окна будут одним большим окном, то с ним ничего не остаётся сделать, как закрепить его поверх всех окон на отдельном рабочем столе Linux"а и запретить вывод Linux приложений на этот рабочий стол. Таким образом все Windows приложения будут появляться на отдельном рабочем столе Linux, что на мой взгляд очень удобно.
Файловая система
Ее можно просто примонтировать к Linux. Например:

/virtualization
/virtualization/Windows/
/virtualization/Documents & Settings/
/virtualization/Program Files/

Вызов приложений
Запуск приложений планируется делать через меню Linux"а. Огранизовать это будет достаточно сложно, но реалистично. У VirtualBox"а есть консольная утилита, которая может запускать приложения в гостевой ОС из хоста. На этом и планируется основать вызов приложений из меню Linux.
Установка программ
По сути, установка программ не будет проблемой, но у меня есть более интересная идея. Можно использовать пакетную систему Linux для установки Windows приложений. Таким образом мы вся сила пакетного менеджера будет использована в Windows. Если делать репозитории с программами для Windows, то отпадет проблема вирусов и захламления системы.
Меню приложений
Если использовать пакеты в Windows-софтом, то при установке пакета просто копировать ярлык для запуска программы в гостевой системе. Эта проблема отпадает сама по себе.
Остальное
Многое уже реализовано VirtualBox"ом, так что интернет будет работать сразу, usb - тоже и еще много чего. На стадии идеи тяжело все продумать наперед. Так что пока остановлюсь.

Что мы в итоге получим?

Мы получим Linux c полной поддержкой Windows приложений. Почему почти? Потому, что единственное, что не будет работать - это мощные приложения, использующие DirectX, но над этим ведётся работа. Все остальное зависит от мощности компьютера. Так же можно будет завести почти любое USB-устройство, которое не хотело работать с Linux. Тем самым сводя неудобство пользования Linux от нехватки привычного софта к нулю. То есть мы берём безопасность и функциональность Linux и мощь софта от Windows.

И кому это нужно?

Во первых людям, которым нравится Linux, но бесит отсутствие привычного софта. Или тем, кому не хватает 1-го или 2-ух профессиональных приложений, из-за которых они не могут пользоваться только Linux. Или тех, кто хочет изучить Linux, но не переходить резко на нативные приложения. Будет в помощь тем, кто хочет перейти на Linux.

В чем проблема?

Проблем много. Главная - мы по прежнему будем использовать Windows. Так же я не знаю, что будет с лицензиями. Можно ли будет обрезать купленный нами Windows так, как нам хочется? Так же мы теряем кучу ресурсов компьютера. Без процессора с аппаратной виртуализацией это будет один большой тормоз и ещё будет нужно много оперативной памяти. Для комфортной работы 3-4 Гб.

Что дальше?

Мне интересно узнать мнение сообщества. Возможно это бредовая идея, а может неплохая. Организация подобного проекта займет очень много времени и сил и никогда не будет реалиована одним человеком. Если вы посчитаете эту идею интересной, то можно будет собраться вместе и вложить свой вклад в Linux.

P.S. Мне было очень тяжело писать о набросках мыслей в моей голове. Этот текст - всего лишь маленькая часть большой задумки. Тут много непродуманных моментов, и моментов, которые я не знаю как реализовать. Так или иначе базовый функционал моей идеи вполне реализуем. Не судите строго.

Wine - специальное ПО, которое позволяет запускать приложения, созданные для Windows, в UNIX-подобных системах, в том числе Linux. Слышали про Wine, думаю, если не все, то многие. Хочу и я пографоманствовать на эту тему. Множество статей о Wine гласят, что надо жать на пимпу, дергать загогулину, и тогда программа (вписать название) заработает. Я бы хотел оставить это в стороне, и рассказать о Wine в целом, о том, какие существуют тонкости, и как вообще его использовать. По крайней мере, именно этого мне не хватало по началу.

Во многих дистрибутивах Wine установлен «из коробки» — достаточно выполнить двойной щелчок на файле с расширением.exe, и, вполне вероятно, все заработает. Если же этого оказалось мало, то давайте погружаться в детали.

Как узнать, какая версия Wine установлена?

Открываем консоль, выполняем команду:

winecfg

В открывшемся окне выбираем вкладку «О программе», где и находится искомое.

Где взять Wine и какую выбрать версию?

По поводу установки уточню лишь, что во многих популярных дистрибутивах Winetricks может быть установлен из репозиториев.

Чтобы запустить Winetricks для префикса по умолчанию, достаточно выполнить команду:

winetricks --gui

Если же вы успели создать различные префиксы, то используйте команду:

WINEPREFIX=~/.wine_example/ winericks --gui

А есть какая-нибудь программа, которая вообще все вышеописанное сделает за меня?

Есть, причем целых две. Начнем с PlayOnLinux - https://www.playonlinux.com/ru/ . Эта программа содержит большое количество сценариев для установки тех или иных приложений под Wine. Иногда нужен дистрибутив, в некоторых случаях PlayOnLinux скачает его сам, а также создаст отдельный префикс с нужными настройками Wine, скачает и установит все необходимые компоненты и т. п. В списке программ, в «общеобразовательных целях» имеются и те, которые не работают. Они подсвечены красным. Интерфейс у PlayOnLinux простой да еще и на русском языке.

Второй вариант - платное и достаточно известное решение CrossoOver (https://www.codeweavers.com/). Позиционируется как коммерческая версия Wine. Продукт, с одной стороны, нацелен на запуск офисных приложений. С другой - так же, как и в PlayOnLinux имеются сценарии для установки большого количества других приложений, в том числе игры. Лично я как-то не очень просек «фишку» этой программы. Стоит она не дешево, к тому же речь идет не о покупке «однажды и навсегда», а о подписке: 12 месяцев - 40 долларов. При этом, воспользовавшись тестовой версией (при желании сделать это можете и Вы), я увидел, что интересующие меня программы (в частности Microsoft Office, а также еще кое-что по-мелочи) работают ничуть не лучше, чем под «простым»Wine, и покупать CrossOver не стал. Не могу не заметить, что на подходе новая, 15-я, версия CrossOver, в которой нам обещают много нового — например, работающий Office 2013. Как он будет работать — конечно, большой вопрос. Но между тем.

Что в итоге?

А в итоге все просто:
— имейте свежую версию Wine;
— в случае возникновения сложностей с какой-то программой, не поленитесь посетить AppDB и просто почитать форумы. Например, на форумах многих MMO существуют специальные темы о запуске их под Wine;
— дополнительные компоненты, коль скоро такие нужны, устанавливайте при помощи Winetricks;
— особо «тяжелый» софт устанавливайте, используя специальный префикс.

Кстати, о дополнительных компонентах. Многие пытаются установить DirectX под Wine, в большинстве случаев это совершенно не обязательно. Если же игра жалуется на отсутствие какой-то конкретной библиотеки, просто установите ее через Winetricks.

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

Во-первых в Linux много хорошего нативного софта, просто поищите получше, и обязательно найдете искомое. Я, например, уже , которые подобрал взамен тем, которыми пользовался в «окошках».

Во-вторых, «Wine» тянет за собой не только приложения для Windows, но и различные проблемы, присущие этой платформе. Например вирусы. А учитывая тот факт, что приложения, запущенные под Wine, имеют доступ к Вашему домашнему каталогу… Некоторые, насколько я знаю, даже устанавливают под Wine антивирусы. Но это, как мне кажется, совсем перебор.

Достаточно просто соблюдать осторожность и не устанавливать все подряд. Я под Wine запускаю две игры, да еще, время от времени, архиватор 7-zip — никак не подберу полностью устраивающий меня аналог под Linux.

В противовес предостережениям, хочется сказать, что само по себе наличие такого ПО как Wine открывает много возможностей, особенно если взять во внимание тот факт, что в последнее время Wine совершенствуется буквально на глазах.

Предположим, что у вас есть приложение, которое запускается и работает хорошо только в Windows. Такая программа не имеет эквивалента в Linux, и не работает в или другом эмуляторе Windows API — CrossOver для Linux.

Возможно, ли запустить эту программу не выходя из Linux? Да, возможно: Используя гипервизор для запуска Windows, виртуальную машину (VM).

VM позволяет запускать гостевую операционную систему поверх другой операционной системы. С точки зрения гостя, кажется, что система работает на своем собственном ПК, но на самом деле она работает в ограниченной виртуальной подсистеме ПК, в виртуальной машине. А виртуальная машина, в свою очередь, управляется программой под названием гипервизор. Таким образом, мы получаем идеальный эмулятор Windows в Linux .
Есть много прекрасных настольных гипервизоров для Linux, таких как VMware Player, Kernel Virtual Machine (KVM), и мой любимый, свободный VirtualBox от Oracle. Я предпочитаю VirtualBox, потому-что это самый простой по настройке и запуску виртуальных машин гипервизор.

Ни VirtualBox, ни любой другой гипервизор, не делает Windows безопаснее в использовании, чем она есть на самом деле. Все существующие дыры в безопасности Windows также будут существовать, и выполняться в виртуальной машине.

Эмулятор Windows в Linux? Что VirtualBox может сделать для Вас?

VirtualBox будет безотказным эмулятором Windows для Linux , он сможет запускать Windows только тогда, когда вам это нужно для конкретных задач. Например, для запуска тех или иных приложений.

Windows в VirtualBox можно ограничить. Например, отключить сеть, что может сделать её немного безопаснее. Я обычно в Windows на виртуальной машине выполняю те же самые стандартные меры безопасности, что и выполняют все люди на реальном компьютере, устанавливаю антивирус для того, чтобы мои файлы, которые я буду предоставлять людям, не имели вирусов. К тому же я обычно для Windows открываю одну общую папку из Linux, для простоты обмена файлами.

VirtualBox, как и любой другой гипервизор, любит достойные системные ресурсы, которые он будет использовать. Поэтому, если вы хотите, чтобы у вас был комфортный эмулятор Windows в Linux, другими словами работал Windows в окне Linux, то у вас не должен быть старый ПК, так как такой компьютер будет не в состоянии использовать VirtualBox для запуска Windows.

По моему опыту, вы сможете запустить Windows поверх Linux с помощью VirtualBox на системе с 1 Гб оперативной памяти, но это будет не очень комфортно. По крайней мере, нужно иметь 2Gb оперативной памяти и 1-ГГц (гигарцовый) AMD или Intel процессор.

После настройки виртуализации Вы получите ни чем не отличающуюся работу Windows, не выходя из Linux. Для всех ваших практических целей вы будете использовать реальные операционки Windows.

Вы можете настроить VirtualBox так, чтобы ваша система Linux и ваши Windows гостевые операционные системы, как я уже говорил выше, могли обмениваться файлами. Использовать каталоги (папки): копировать, вставить и редактировать файлы из одной операционной системы в другую. И даже иметь общий буфер обмена. Как только вы освоитесь в управлении двух операционных систем одновременно, поймете, что это может быть очень удобно.

Все это означает то, что при запуске Windows в VirtualBox все ваши приложения будут обращаться к дискам, файлам или к интернету. Поэтому будьте осторожны, любые программы Windows в вашей виртуальной машине, которые требуют доступа к сети, могут подвергаться всем вирусным угрозам, как будто бы вы работаете на обычном ПК.

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

Если вы перешли на Linux, но подходящих аналогов Windows-программ не нашли, не отчаивайтесь. В этом случае вы можете воспользоваться специальным программным обеспечением - WINE. Wine - не эмулятор, и поэтому ему не требуется время для эмуляции - Wine запускает приложения так, как это делает Windows. Вы сможете запускать практически все приложения, используемые вами в Windows и настроить их по своему вкусу, то есть загрузить собственные шрифты и т.д. Но сначала давайте ознакомимся с основами Wine.

Wine - это свободное программное обеспечение, позволяющее пользователям UNIX-подобных систем исполнять 16 и 32-битные приложения Microsoft Windows.

Установка Wine:
Воспользуемся терминалом суперпользователя (ТОЛЬКО для установки):

Sudo -s

Добавим список репозиториев ключ и установим Wine:

RELEASE=`lsb_release -cs`
elif [[ $RELEASE = "lucid" || $RELEASE = "karmic" || $RELEASE = "jaunty" || $RELEASE = "intrepid" || $RELEASE = "hardy" ]]; then
wget -q http://wine.budgetdedicated.com/apt/sources.list.d/$RELEASE.list -O /etc/apt/sources.list.d/winehq.list
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | apt-key add -
apt-get update && apt-get install -y wine cabextract

Примечание: если вы используете не Ubuntu, а, например, Linux Mint 9, то выражение

Http://wine.budgetdedicated.com/apt/sources.list.d/$RELEASE.list

замените на

Http://wine.budgetdedicated.com/apt/sources.list.d/lucid.list

иначе при выполнении команды будет подставлено значение «isadora», а не «lucid», и установка не пройдет.

Затем создадим в домашней директории папку ~/.wine/ , запустив конфигуратор Wine:

Winecfg

Пока нам там делать ничего не нужно, закроем.

Установка и удаление приложений:
Для установки приложения Windows воспользуемся файловым браузером winefile:

Winefile

Затем переходим в нужный каталог нашей файловой системы Linux либо виртуального диска C:/ и двойным щелчком запускаем нужный исполняемый файл. Многие приложения после установки требуют перезапуска системы, но мы работаем в виртуальной среде, и поэтому компьютер перезагружать не следует. Нужно только перезапустить Wine (при этом завершить остальные работающие приложения до перезагрузки):

Wineboot

Если установка производится из файла с расширением *.msi, то воспользуемся командой:

Msiexec /i example.msi

где example.msi - название вашего файла.

Для удаления приложения Windows нужно выполнить следующее:
Переходим в «Приложения» → «Wine» → «Программы» → «» → «Uninstall».

Если же после установки приложения, его папка не появилась в «Приложения» → «Wine» → «Программы», то воспользуемся терминалом. Например, чтобы запустить example.exe , находящийся на виртуальном диске C:/ в директории Program Files/Random , переходим в соответствующую директорию и запускаем его:

cd ~/.wine/drive_c/"Program Files"/Random
example.exe

Общие настройки:

Приложения:
По умолчанию установлен Windows XP, который можно изменить на другую версию. Причем можно настроить так, чтобы каждое приложение запускалось с параметром определенной системы.

Библиотеки:
По умолчанию все библиотеки в Wine используются свои.

Графика:
Для некоторых приложений может потребоваться включить или выключить вершинные и пиксельные шейдеры, может потребоваться эмуляция виртуального рабочего стола. Попробуйте изменять параметры этого раздела сами.

Вид и интеграция:
Во вкладке «Графика», по умолчанию стоят галочки "разрешить менджеру окон управлять окнами Wine” и «разрешить менджеру окон декорировать окна», оформление win-окон будет таким же, как и у любых других приложений. При желании вы можете управлять размерами системных шрифтов и цветом десктопа.

Диски:
Здесь можно добавлять диски, используя для них любую директорию вашей файловой системы.

Аудио:
При работающем звуке ничего изменять не рекомендуется.

Помните!
При запуске Wine желательно завершить все работающие приложения и отключить Compiz (эффекты).

Wine – приложение, являющееся слоем совместимости с Windows API , использующее библиотеки Windows для обеспечения работоспособности приложений, разработанных для ОС семейства Microsoft Windows в иной среде, например, в Ubuntu . Используя Wine, вы можете устанавливать и запускать различные программы так, как будто вы используете Windows .
Wine активно развивается. Ещё не все приложения достаточно стабильно работают в Wine , однако Wine уже используется несколькими миллионами пользователей по всему миру.
Название программы Wine (waɪn - между «уа́йн » и «ва́йн », рус. Вино) - рекурсивный акроним фразы «W ine I s N ot an E mulator» - рус. «Wine - не эмулятор».

Установка Wine

Установка из PPA

В связи с тем, что Wine активно развивается, в репозиториях Ubuntu обычно содержится очень старая версия. Поэтому рекомендуется ставить последнюю версию из официального репозитория Wine.

Для последних версий wine и ubuntu 64 бита

Sudo dpkg --add-architecture i386 sudo add-apt-repository ppa:wine/ wine-builds && sudo apt-get update sudo apt-get install --install-recommends winehq-devel

И вообще не рекомендуется заполнять и настраивать wine самому. Работать с wine не совсем удобно. Чтобы установить ту или иную программу придется облазить кучу форумов и блогов, чтобы понять какие пакеты нужно установить и какие библиотеки добавить. Затем следует длинный процесс решения проблем, установки пакетов через winetricks и ручной настройки реестра и так далее. Это все очень сложно даже для опытных пользователей, не говоря уже про новичков. Поэтому рекомендуется скачать настроенный префикс wine отсюда: http://forum.ubuntu.ru/index.php?topic=199897.0

Настройка

Перед использованием Wine для запуска приложений нужно запустить программу настройки, которая создаст в вашей домашней директории каталог ~/.wine с необходимыми для работы файлами. Для этого либо выберите пункт главного меню Приложения→Wine→Configure Wine , либо выполните в терминале команду:

winecfg

Ассоциирование файлов с программами wine

Чтобы прозрачно запускать файлы с помощью wine-программ, напишем небольшой скрипт. Допустим, нам надо открывать CAD-файлы Компасом и zwcad"ом.

#!/bin/bash # Определяем расширение файла dd =$1 ; razr =` echo ${dd:(-3)} ;` ff =` echo ${dd/\"/\"Z:} ` ; ff =` echo "\" Z:" $ff \" ` ; # В зависимости от расширение запускаем нужную программу case $razr in frw) env WINEPREFIX ="/home/" $USER "/.wine" wine start ` echo $ff ` & ;; cdw) env WINEPREFIX ="/home/" $USER "/.wine" wine start "C:\\Program Files\\ASCON\\KOMPAS-3D Viewer V9\\Bin\\kViewer.Exe" ` echo $ff ` & ;; dwg) env WINEPREFIX ="/home/" $USER "/.wine" wine start ` echo $ff ` & ;; dxf) env WINEPREFIX ="/home/" $USER "/.wine" wine start "C:\\Program Files\\ZWCAD 2009 Eng\\ZWCAD.exe" ` echo $ff ` & ;; # Тут можно добавить ещё расширений и программ esac

Не забудем сделать наш скрипт исполняемым

chmod +x wine_cad.sh

и ассоциируем в файловом менеджере чертежи со скриптом.

Запуск Windows приложений

Для того, что бы запустить приложение вам нужно открыть терминал и прописать в нем:

wine путь/ к приложению/ program.exe

Если у вас не запускается приложение или работает неправильно На сайте wine есть список приложений с описанием, для начала рекомендую свериться с ним. http://appdb.winehq.org/ - На сайте есть поле поиска. Если у вас плохо с английским, то используйте переводчик http://translate.google.com/ .

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

Приложениям, запущенным через Wine, которые работают с Веб-страницами необходим Gecko

Gecko – это свободный движок вывода веб-страниц для браузера при работе в интернете wine. Если wine не работает с интернетом и вы не запускаете windows exe браузер, то вам Gecko не нужен. Обычно при запуске приложения для работы с веб-страницами Wine автоматически ищет Gecko сперва в /usr/share/wine/gecko. Если Wine не находит архив с Gecko там, то оно автоматически загружает его из интернета, но некоторые приложения не любят ждать, пока загрузиться Gecko и зависают или вылетают. Gecko можно установить выполнив команду:

sudo apt-get install wine-gecko< версия>

где <версия> надо заменить на версию установленного Wine.

Запуск через дискретную видеокарту

Для запуска через дискретную видеокарту надо прописать в терминале на свободных драйверах(или написать скрипт)

Vblank_mode=0 DRI_PRIME=1 wine имя_файла.exe

vblank_mode=0 означает вертикальная синхронизация(Vsync). Если в настройках игры нет VSync, то необходимо стереть vblank_mode=0

Сохранить. Поместить в папку с игрой. Сделать исполняемым в свойствах. Поместить ссылку на скрипт на рабочий стол. Запускать ссылку вместо файла игры. Для ещё большей производительности необходимо поставить закрытый поприетарный драйвер.

Winetricks

Winetricks – это скрипт для установки различных компонентов от Microsoft®, и некоторых других. Для получения Winetricks в терминале введите:

sudo apt-get install winetricks

Winetricks содержит несколько десятков пакетов различных библиотек для wine. Например, чтобы установить DirectX™, введите:

Winetricks d3dx9

Для просмотра списка всех пакетов, введите:

Winetricks ?

Также, Winetricks имеет простой GUI . Для его запуска введите.

Лучшие статьи по теме