Как запустить программу для Linux в Windows

Название Wine расшифровывается как Wine Is Not an Emulator. Это своего рода прослойка между приложениями Windows и системой Linux. Он позволяет устанавливать и запускать многие популярные Windows-программы и работать с ними так, как будто это родные приложения Linux.

Чтобы установить Wine, воспользуйтесь соответствующей командой.

1. Ubuntu, Debian, Mint:

sudo dpkg --add-architecture i386

wget -nc https://dl.winehq.org/wine-builds/Release.key

sudo apt-key add Release.key

sudo add-apt-repository "deb https://dl.winehq.org/wine-builds/ubuntu/ artful main"

sudo apt-get update

sudo apt-get install --install-recommends winehq-stable

sudo dnf install winehq-stable

sudo zypper install wine

4. Arch, Manjaro:

sudo pacman -S wine

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

Теперь скачайте установщик нужного вам приложения Windows, найдите папку с ним в вашем файловом менеджере и откройте файл. Либо введите команду wine путь_к_приложению.

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

Установить Winetricks можно так:

1. Ubuntu, Debian, Mint:

sudo apt-get install winetricks

sudo dnf install winetricks

sudo zypper install winetricks

4. Arch, Manjaro:

sudo pacman -S winetricks

Winetricks позволяет установить различные версии Microsoft Office и Photoshop, плеер foobar2000 и множество других программ. Поддерживаются и такие популярные игры, как , Call of Duty 4, Call of Duty 5, Biohazard и Grand Theft Auto: Vice City. Некоторые программы загружаются автоматически, для других будет предложено вставить установочный носитель. И, естественно, вы можете открывать собственноручно скачанные файлы формата EXE.

PlayOnLinux - ещё один удобный инструмент для запуска Windows-приложений в Linux. Как и Winetricks, он обладает простым графическим интерфейсом. Но, в отличие от него, PlayOnLinux позволяет вам выбирать конкретную версию Wine для того или иного приложения. Это полезно, если какая-то из нужных вам программ некорректно работает с новыми версиями Wine. В целом PlayOnLinux выглядит куда симпатичнее и практичнее, чем Winetricks.

Чтобы установить PlayOnLinux, выполните в терминале одну из следующих команд:

1. Ubuntu, Debian, Mint:

sudo apt-get install playonlinux

sudo dnf install playonlinux

sudo zypper install playonlinux

4. Arch, Manjaro:

sudo pacman -S playonlinux

В меню установки PlayOnLinux можно найти множество предварительно сконфигурированных приложений и игр, которые вы можете загрузить и установить парой щелчков. Кроме того, PlayOnLinux можно скармливать собственные EXE-установщики. Приложение заботливо выберет за вас версию Wine и создаст значок установленной программы .

Изредка бесплатные PlayOnLinux и Winetricks не справляются с установкой какого-нибудь особенно привередливого приложения. В таком случае вам может помочь Crossover. Эта программа очень проста в использовании. Вам достаточно указать, какое приложение вы хотите установить, и подсунуть Crossover установочный файл. Всё остальное будет сделано за вас.

Лицензия Crossover на год стоит 39,95 доллара, но у программы есть и бесплатная пробная версия. Рекомендуется сначала установить необходимое вам приложение в ней, чтобы убедиться, что оно работает корректно.

Если ваше приложение упорно отказывается запускаться в перечисленных выше программах, можно пойти на решительные меры и установить его в виртуальной машине. Учтите, что она отнимает гораздо больше системных ресурсов, поэтому использовать её стоит в крайних случаях.

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

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

Предположим, что у вас есть приложение, которое запускается и работает хорошо только в 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, раз и навсегда.

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

Как правило, для любого пользовательского приложения Microsoft Windows можно найти замену в виде «родного» приложения под Ubuntu, в прошлой статье (см. выпуск «Open Source» №035, опубликованный 21.11.2008) я попытался упомянуть разнообразные приложения для полноценной работы. И такой подход (использование «родных» Linux-аналогов) в большинстве случаев будет предпочтительней, так как он создает меньше проблем, они быстрее решаются, да и вообще более приятно, когда все приложения выглядят и работают примерно одинаково.

Если же по тем или иным причинам найти замену приложению для Windows сложно или не представляется возможным (например, для игр), либо имеющиеся аналоги не устраивают, можно воспользоваться возможностями запуска Windows-приложений в среде GNU/Linux. Этого можно добиться несколькими путями.


Виртуальные машины

Один из популярных способов работы с Windows-приложениями в Linux – использование . Как и у всех, у него есть свои достоинства и недостатки. К первым, помимо простоты, можно отнести возможность запуска приложений в их «родной» среде, здесь стоит сделать оговорку. Microsoft Windows в данном случае будет работать как обычное приложение - в отдельном окне и будет называться «гостевой ОС», в то время как основная ОС называется «хост-система» или «хост-ОС», данный подход повышает стабильность работы самого приложения. Приложения, выполняемые в этом случае в гостевой ОС будут изолированы от основной ОС, и если вдруг гостевая ОС будет заражена сетевым червем или произойдет неисправимый сбой, на хост-ОС это никак не повлияет. К плюсам относится возможность работать со «снимками» системы, то есть делать запись текущего состояния ОС и при необходимости ( заразил всю систему) восстановить предыдущее состояние, а также, созданный мастером образ гостевой операционной системы можно переносить на любой компьютер и другое. К основным недостаткам - необходимость запуска целой операционной системы, что вызывает снижение производительности основной ОС (так как виртуальная машина использует достаточно много системных ресурсов), долгое время запуска самого приложения (от запуска эмулятора до момента открытия приложения) и, как бы противоречиво это не звучало изолированность системы, которая ограничивает возможности по обмену данными с хост-системой.

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

Существует несколько программ, для создания и запуска виртуальных машин - в том числе и с графическим интерфейсом, о которых и пойдет речь. Рассмотрим два приложения: VMware Server и VirtualBox. Выбор пал на них не случайно - они во многом схожи: примерно одинаково выполнен интерфейс пользователя, оба распространяются бесплатно и имеют набор инструментов для гостевых ОС. Поиграть в этом случае шансы невелики, так как поддержка 3D ускорения в гостевых ОС на начальном уровне.

VirtualBox

Поставляется в двух вариантах: с открытым исходным кодом (Open Source Edition, OSE) и содержащий закрытые компоненты. В последней функциональные возможности несколько расширены (например, возможность подключить USB-устройство в гостевой ОС доступна только в этой версии). Ее можно установить, скачав deb-пакет для вашей версии дистрибутива с сайта проекта (http://download.virtualbox.org/virtualbox/vboxdownload.html#linux). Вариант с открытым исходным кодом (OSE) устанавливается из репозиториев следующим образом (для Ubuntu Linux):

Sudo apt-get install virtualbox-ose

Приложение позволяет виртуализировать большинство версий Windows, проблем несовместимости быть не должно.

VMware Server

Закрытая, но бесплатная разработка известной компании VMware, которая специализируется на ПО для виртуализации. Помимо Server есть и другие продукты, в том числе и платные (http://www.vmware.com/products/product_index.html). Все подробности о них и ссылки для скачивания доступны на сайте компании.

Несмотря на схожесть принципов работы и предоставляемых возможностей, между VirtualBox и Vmware Server есть различия, заметные и обычному пользователю: если окно виртуальной машины в VirtualBox отдельно от основного окна программы, в VMware Server это реализовано с помощью табов; мастера настроек (работа с дисками и приводами) для VirtualBox также выполняются в отдельных окнах; бинарные пакеты для Server, как правило, имеют вдвое больший размер и прочее. Советую попробовать оба варианта, сравнить и выбрать понравившийся.

WINE

В отличии от виртуальных машин WINE ничего не виртуализирует, он лишь частично реализует функционал WinAPI, позволяя выполнять приложения Microsoft Windows в GNU/Linux. И у этого программного решения есть свои плюсы и минусы. Минусы достаточно весомые: гарантия запуска и работы приложения ниже, чем при использовании виртуальных машин, при переходе WINE от версии к версии приложение может и перестать работать, в основном это касается приложений, использующих сторонние dll файлы, отсутствует поддержки 64-битных приложений. Среди плюсов стоит сказать о меньшей потере в производительности, системные требования, по сравнению с виртуальными машинами ниже, а интеграция с основной ОС выше.

Полгода назад, после пятнадцати лет разработки, состоялся релиз WINE под номером 1.0.0, критерием выхода которого являлась стабильная работа Photoshop CS2 и программ чтения файлов Mircosoft . За минувшее время программа выросла еще больше и на данный момент является единственным (кроме виртуальных машин) связующим звеном между Microsoft Windows и другими операционными системами.

Установка WINE в Ubuntu:

Sudo apt-get install wine

После выполнения этой команды будут скачаны, установлены и настроены все необходимые пакеты, однако стоит учитывать, что в официальных репозиториях Ubuntu, как правило, находится старая версия WINE. Чтобы получить доступ к последним релизам, необходимо подключить сторонний репозиторий WINE. Как это сделать, описано на http://www.winehq.org/download/deb . Затем следует выполнить команду «sudo apt-get update» и установить WINE, воспользовавшись приведенной выше командой. Настроить WINE вы можете, выполнив команду winecfg (либо из меню «Wine» в «Приложениях» запустите «Configure Wine»).

Есть два способа запуска приложений Microsoft Windows: из консоли, что является более гибким способом, так как в строке можно будет указать дополнительные параметры для запуска; через графический интерфейс пользователя. В первом случае в командной строке необходимо выполнить что-то вроде этого:

Wine -keys /home/user/program.exe

  • wine - команда выполнения WINE,
  • -keys - ключи, которые вы хотите передать на выполнение программе,
  • /home/user/ - каталог в котором расположена программа,
  • program.exe - исполняемый файл Windows.

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

На официальном сайте WINE есть специальная база данных, отображающая работоспособность того или иного популярного Windows-приложения, благодаря которой можно заранее узнать, будет ли работать любимая или необходимая программа. Web-интерфейс к базе данных расположен на сайте http://appdb.winehq.org/

Другие разработки на основе WINE

WINE, как и многие открытые проекты, подвергся переработке и дополнениям на стороне. В частности, на его основе были разработаны приложения, которые специализируются в той или иной области.

WINE@Etersoft

Платная российская разработка, нацеленная, в первую очередь, на предприятия. Особенность заключается в возможности запуска в Linux-системах отечественных программ вроде «1C: Предприятие», которые широко используются в российском корпоративном секторе. Кроме того, есть возможность запуска систем клиент-банк и правовых систем, а также некоторых привычных обычному пользователю 2GIS, FineReader, ABBYY Lingvo.

CrossOver

Приложение, созданное с целью предоставить пользователям возможность беспрепятственной работы с Microsoft Office. Помимо этого, обеспечивается запуск некоторых специализированных программ: Adobe Dreamweaver MX, Quicken и других. В состав CrossOver входит дружественная утилита конфигурации, патчи для приложений. Кроме того, к нему предлагается платная техническая поддержка. У его производителя, компании CodeWeavers, есть и специализированный продукт CrossOver Linux Games, ориентированный на запуск некоторых популярных игр (их список можно найти на http://www.codeweavers.com/compatibility/browse/group/?app_parent=4100). Эта программа также является закрытой и платной, однако большая часть наработок возвращается обратно в WINE в соответствии с условиями лицензии GPL.

PlayOnLinux

PlayOnLinux (POL) - достаточно молодой свободный проект, нацеленный на запуск игр Microsoft Windows в среде Linux. Любой желающий может поучаствовать в его развитии, написав плагин или модуль установки игры. Суть проекта - в создании базы данных по параметрам, необходимым для установки и запуска игр. Установить программу в Ubuntu можно так:

Sudo wget http://playonlinux.botux.net/playonlinux.list -O /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update
sudo apt-get install playonlinux

Cedega

Cedega - изначально коммерческий, но более «зрелый» проект, ориентированный на игры. Он разрабатывается уже довольно давно, а в середине минувшего декабря состоялся релиз 7.0. Чтобы его получить, необходима подписка стоимостью в 25 USD за полгода. Для привлечения сторонних разработчиков Cedega выкладывает часть исходных текстов в SVN, что позволяет получить базовый функционал бесплатно.

Заключение

Это последняя статья цикла «Ubuntu для новичков», которая ставит точку во введении в мир GNU/Linux. В ней рассмотрен последний важный на мой взгляд аспект работы в Ubuntu – запуск приложений Microsoft Windows. Хочу еще раз повториться, что в большинстве случаев бывает достаточно функционала «родных» приложений для GNU/Linux и этот вариант является предпочтительным. Используйте WINE в крайних случаях, стараясь исключить использование виртуальных машин вообще.

Оставьте свой комментарий!

В настоящий момент существуют 2 способа для запуска Windows-приложений в среде Linux:

1) Механизм создания виртуальных машин. К таким программам относятся, например, VMWare и Win4Lin . Для их работы необходимо, чтобы на компьютере был установлен Windows.
2) Запуск Windows-программ как X Window приложений. Самая известная и легендарная программа подобного рода - это Wine (Wine Is Not an Emulator).

Вообще-то VMWare - это мощная система виртуальных машин. Эта программа не специализируется на эмуляции конкретных операционных систем - просто эмулируется сам компьютер, внутри которого и запускается другая OS. Короче говоря, виртуальный компьютер - это специальная программа, запускаемая в ОС Linux и моделирующая физический компьютер Intel x86. Монитором виртуального компьютера является окно графической оболочки X Window, в которое производится вывод информации.

Виртуальный компьютер «строится» из следующего набора виртуальных устройств:
виртуальные жесткие диски IDE и SCSI, виртуальный дисковод CD–ROM;
стандартный дисковод гибких дисков;
контроллер жестких IDE-дисков Intel 82371 PCI Bus Master, поддерживающий два первичных (primary) и два вторичных (secondary) IDE-диска;
адаптер SCSI-дисков, совместимый с BusLogic BT-958;
стандартный графический PCI-адаптер, стандартная 101/102-клавишная клавиатура, PS/2-совместимая мышь;
сетевая плата AMD PCNET Family Ethernet adapter (PCI-ISA);
последовательные порты COM1-COM4, параллельные порты LPT1-LPT2;
звуковая плата, совместимая с Sound Blaster 16.

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

Общий вывод - большая и неповоротливая программа, но с большим возможностями.

1.2) Win4Lin - http://www.netraverse.com .

Это тоже эмулятор виртуального компьютера, но он создан и оптимизирован специально для запуска Windows в Линуксе. Тем более, он использует не обычное, а пропатченное ядро Linux. Поэтому он быстрее и надежнее, чем VMWare. Вообще, Win4Lin на сегодняшний момент - лучшая из подобных программ! Эмуляция почти 100%, и в окне Linux идут все известные программы, написанные для Windows (На сайте перечислены такие приложения - MS Office, Intuit Quicken, Lotus SmartSuite, Adobe Photoshop, Intuit TurboTax, MS Internet Explorer, Palm Desktop, Netscape Navigator, Winamp, и многое другое). Так же специальная функция программы - это защита от сбоев (protection layer), благодаря которой даже если приложение упало, оно легко восстанавливается, не влияя на работоспособность системы. В новой версии Win4Lin 3.0 есть даже поддержка сети Microsoft. Единственный недостаток - отсутствие поддержки DirectX, поэтому в игры поиграть не получится. А вообще - все идет очень быстро по сравнению с VMWare и даже на время забываешь, что находишься в Линуксе:).

Установка: Сначала нужно скачать установочный файл с http://www.netraverse.com/download . После этого setup сам определяет тип вашего ядра и предлагает скачать пропатченную версию ядра (Win4Lin-Improved Kernel). Подробнее об установке или использовании Win4Lin можно прочитать на английском , или . Так же доки на русском языке есть . (Дополнение от 24.01.02: Есть еще одна интересная статья об установке Win4Lin - она находится ).

Общий вывод - The best!!

2.1) WINE (Wine Is Not an Emulator) - http://www.winehq.org .

Самая известная и легендарная программа для запуска Windows-программ в OS Linux и среде X Window. Действительно, Wine - это не эмулятор, а просто программа, пытающая воспроизвести функциональность Windows. В отличии от двух вышеперечисленных коммерческих (и очень дорогостоящих) проектов, Wine распространяется как Open Source. (Но существует и коммерческая версия под названием WineX , разрабатываемая компанией Transgaming). Разработчики Wine и WineX уже добились определенных успехов в запуске мощных Windows-приложений. (Например, под WineX 2.0 прекрасно идут современные игры). Wine не создает виртуальный компьютер, а пытается запускать Windows-приложения в графические приложения для Linux. Следовательно, для VMWare и Win4Lin требуется, чтобы на компьютере был установлен Windows, а для Wine наличие Windows на компьютере не обязательно. (Но обычно используются различные файлы, взятые из Windows - например, библиотеки DLL).

Рано или поздно может понадобиться запустить программы 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, установленные программы, библиотеки, файлы реестра, конфигурационные файлы находятся в домашнем каталоге, а точнее, в ~/.wine.

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

Папка ~/.wine это префикс, но мы можем создавать для каждой новой программы свой префикс и она будет работать только с ним. Чтобы задать префикс, с которым нужно работать wine используется переменная окружения WINEPREFIX, например:

export WINEPREFIX=~/program

Для разных программ может потребоваться различная архитектура системы, wine может запускать и 64 битные программы, но многим для правильной работы нужна архитектура х86.

Чтобы задать архитектуру используйте переменную WINEARCH. Например, для х86:

export WINEARCH=win32

Также не создавайте папку для нового префикса с помощью mkdir или файлового менеджера, пусть программа сама создаст эту папку при своем первом запуске.

Установка Windows программ в Wine

Если вам нужно запустить программу, полностью поддерживаемую Wine, например, проводник или notepad, достаточно выполнить:

wine адрес/файла/программы.exe

Но как я уже говорил, нам придется запускать мало таких программ, большинство из них будут требовать функционала, который еще не реализован в wine. Тогда нам придется заменить библиотеки Wine, на оригинальные библиотеки Windows. Конечно, есть оболочки для Wine, которые автоматизируют этот процесс, например, Crossover, PlayOnLinux, WineWizard и тд. Но мы рассмотрим ручной вариант.

Для установки компонентов Windows в wine существует специальный инструмент - winetricks. Устанавливать его лучше из сайта программы, так версия будет новее:

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks

Чтобы установить нужный компонент достаточно передать имя этого компонента:

winetricks vcrun2008

С установкой компонентов более-менее понятно, но как узнать какие компоненты нужны? Скорее всего, вашу программу уже пытались устанавливать и другие пользователи нашли решение проблемы. Поэтому воспользуйтесь поиском Google для того, чтобы найти способы установки программы. Также очень полезным будет сайт appdb.winehq.org. На нем собрана база данных всех поддерживаемых в Wine приложений, там есть инструкции по установке, описываются возможные проблемы и дается общая оценка работы программы, правда все на английском.

Давайте рассмотрим пример. Наберите в поиске по appdb Advego Plagiatus, напомню, что это программа для проверки уникальности текстов, часто используемая копирайтерами:

Она сразу же была найдена в базе данных:

На странице программы, мы видим кроме скниншота и оценки работы, желтый значит золото, очень хорошо, и инструкции по ее установке, в нашем случае нужен набор библиотек riched30, который можно установить командой:

winetriks riched30

После установки этого пакета программа запуститься и будет работать.

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

Рассмотрим на примере той же Advego Plagiatus. Сначала создадим новый префикс, чтобы не испортить то что уже было установлено:

export WINEPREFIX=~/advego

Архитектуру нам менять не нужно, но если хотите, можете явно указать, что нужно использовать win64:

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.

Копируем библиотеку в наш префикс, в папку syswow64:

cp ~/Загрузки/riched32.dll ~/advego/drive_c/windows/syswow64/

cp ~/Загрузки/riched20.dll ~/advego/drive_c/windows/syswow64/

Для 32 битных библиотек используется папка system32, а поскольку мы указали архитектуру 64 бит нужно и библиотеки использовать соответствующие. Затем запустите winecfg и на вкладке библиотеки, в поле новое замещение для библиотеки наберите *riched32, затем добавить и *riched20 и опять добавить:

Все, теперь можете пробовать запускать программу:

wine ~/advego/drive_c/Program\ Files\ \(x86\)/Advego\ Plagiatus/plagiatus.exe

Теперь программа работает и больше не падает с ошибкой. Таким образом, вы можете заменить много библиотек Wine. Можно запустить практически любую программу, написанную несколько лет назад и не требующую сверх новых технологий. Достаточно только заменить нужные библиотеки. Вы можете не только использовать winetricks или копировать библиотеки из интернета, но и брать их прямо из Windows. Точно не стоит заменять gdi32.dll, kernel32.dll, и user32.dll - эти библиотеки реализуют функции ядра Windows на самом низком уровне, и если их заменить, это только нарушит работу Wine. Наверное, есть и другие библиотеки, которые нельзя заменять, но это вычисляется только путем экспериментов. Экспериментируйте и пусть ваши программы работают без ошибок!