Помощник Админа > Blog > Windows & Linux > Linux > Как пользоваться Wine для запуска Windows приложений в Linux
Опубликовано в

Как пользоваться Wine для запуска Windows приложений в Linux

Wine — это незаменимый инструмент для тех, кто перешел на Linux, но не может полностью отказаться от Windows-программ. В отличие от громоздких виртуальных машин, Wine не эмулирует железо, а выступает прослойкой-переводчиком: он преобразует системные вызовы Windows-приложения в понятные для Linux команды.

В этой статье я, практикующий системный администратор, расскажу, как правильно установить, настроить и использовать Wine, чтобы забыть о проблемах совместимости и наслаждаться работой любимого софта в Ubuntu, Debian, Astra Linux, Red OS и других дистрибутивах.

Что такое Wine и зачем он нужен?

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

Основные преимущества использования Wine:

  • Экономия ресурсов: Не нужно выделять оперативную память и ядра процессора под гостевую ОС, как в VirtualBox или VMware.

  • Интеграция: Windows-программы выглядят как обычные приложения Linux, их можно сворачивать в трей и открывать через них файлы.

  • Универсальность: Подходит для запуска офисных пакетов, игр, бухгалтерского ПО и узкоспециализированных утилит.

Однако Wine не идеален. Сложные приложения с глубоким взаимодействием с драйверами (например, современный Adobe Photoshop или специфичное CAD-ПО) могут работать нестабильно или требовать длительной «пляски с бубном».

Установка Wine в Linux: Пошаговая инструкция

Способ установки зависит от вашего дистрибутива. Мы рассмотрим самые популярные варианты.

Установка в Ubuntu и Debian

Это наиболее частый сценарий. Чтобы получить самую свежую версию, лучше использовать официальный репозиторий WineHQ, но для начала подойдут и стандартные.

  1. Включаем поддержку 32-битной архитектуры. Это обязательный шаг, так как 80% Windows программ до сих пор 32-битные.

    bash
    sudo dpkg --add-architecture i386
  2. Обновляем список пакетов.

    bash
    sudo apt update
  3. Устанавливаем Wine. Самый простой способ — использовать мета-пакет из стандартного репозитория.

    bash
    sudo apt install wine

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

    bash
    sudo apt install winetricks

Установка в Red OS и других RPM-дистрибутивах

Для систем, использующих пакетный менеджер Yum/Dnf, команда будет следующей:

bash
sudo dnf install wine

Или для старых версий:

bash
sudo yum install wine

Проверка установки

После завершения процесса убедитесь, что все встало корректно:

bash
wine --version

Вы должны увидеть номер версии (например, wine-8.0). Это значит, что ядро системы готово к работе.

Базовая настройка Wine: Первый запуск

После установки Wine необходимо инициализировать рабочее окружение. Это создаст так называемый «префикс» — папку, которая будет имитировать диск C: и реестр Windows.

  1. Откройте терминал и введите команду:

    bash
    winecfg
  2. При первом запуске система предложит установить дополнительные компоненты:

    • Mono (нужен для приложений, написанных на .NET)

    • Gecko (нужен для встроенных браузерных движков)
      Смело соглашайтесь на установку обоих — это избавит вас от множества ошибок в будущем.

  3. После завершения установки откроется окно конфигурации. Перейдите на вкладку Applications (Приложения) и выберите версию Windows, с которой ваша программа лучше всего совместима. Для большинства современных приложений подойдет Windows 10, для старых игр — Windows 7 или даже Windows XP.

Правильная организация: Используем отдельные префиксы (WINEPREFIX)

Это самый важный совет, который я могу дать как системный администратор. Никогда не ставьте все программы в один префикс!

Представьте: одна программа требует старую версию библиотеки Visual C++ 2008, а другая — свежую 2022. Если поставить их в один префикс, начнутся конфликты, известные как «DLL Hell». Чтобы этого избежать, для каждого приложения создается свой изолированный «мирок».

Создание отдельного 32-битного префикса для, например, старого бухгалтерского софта:

bash
export WINEPREFIX=~/wine/buhsoft
export WINEARCH=win32
winecfg

Теперь все настройки и файлы этого префикса будут храниться в папке ~/wine/buhsoft.

Установка Windows-программ через Wine

Теперь, когда у нас есть чистый префикс, можно приступать к установке.

Установка .exe файлов

  1. Скачайте установочный файл программы (например, setup.exe).

  2. Запустите установку, указав путь к нужному префиксу:

    bash
    WINEPREFIX=~/wine/buhsoft wine ~/Downloads/setup.exe

    Процесс установки будет выглядеть в точности как в Windows: мастера, кнопки «Далее», лицензионное соглашение.

Установка .msi файлов

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

bash
WINEPREFIX=~/wine/buhsoft wine msiexec /i ~/Downloads/program.msi

Решение типичных проблем: Winetricks и библиотеки

Самая частая ошибка при запуске: сообщение вида «Отсутствует msvcp140.dll» или «Не найдена d3dx9_43.dll». Это значит, что в вашем префиксе не хватает определенных библиотек.

Для их установки используем winetricks. Запустите его с параметром вашего префикса:

bash
WINEPREFIX=~/wine/buhsoft winetricks

Откроется графическое меню. Выберите пункт «Select the default wineprefix», затем «Install a Windows DLL or component». В огромном списке найдите нужные компоненты. Чаще всего требуются:

  • vcrun2019 (или vcrun2022) — библиотеки Visual C++

  • dotnet48 — .NET Framework 4.8

  • corefonts — стандартные шрифты Windows

  • directx9 — для старых игр

Установите галочки и нажмите OK. Winetricks сам скачает и настроит все необходимое.

Сводная таблица команд

Что нужно сделать Команда (просто) Команда (с префиксом)
Запустить .exe wine program.exe WINEPREFIX=~/wine/app wine program.exe
Установить .msi wine msiexec /i setup.msi WINEPREFIX=~/wine/app wine msiexec /i setup.msi
Запустить .bat wine start script.bat WINEPREFIX=~/wine/app wine start script.bat
Открыть реестр wine regedit WINEPREFIX=~/wine/app wine regedit
Установить библиотеку winetricks vcrun2019 WINEPREFIX=~/wine/app winetricks vcrun2019
Удалить программу wine uninstaller WINEPREFIX=~/wine/app wine uninstaller
Прибить зависшее wineserver -k WINEPREFIX=~/wine/app wineserver -k

Как создать ярлык для быстрого запуска

Каждый раз вводить длинные команды в терминале неудобно. Чтобы добавить программу в меню приложений, создайте файл .desktop.

Создайте файл ~/.local/share/applications/myapp.desktop со следующим содержимым:

ini
[Desktop Entry]
Name=Моя Бухгалтерия
Comment=Запуск Windows-программы через Wine
Exec=env WINEPREFIX=/home/ваш_пользователь/wine/buhsoft wine "C:/Program Files/MyApp/program.exe"
Icon=/home/ваш_пользователь/wine/buhsoft/drive_c/Program Files/MyApp/icon.ico
Terminal=false
Type=Application
Categories=Office;

Не забудьте заменить ваш_пользователь на ваше реальное имя и прописать корректные пути к исполняемому файлу и иконке. После этого программа появится в общем меню приложений вашего Linux.

Удаление программ

Для удаления используйте встроенный деинсталлятор Wine:

WINEPREFIX=~/wine/buhsoft wine uninstaller

В открывшемся окне выберите нужную программу и нажмите «Удалить». Если программа больше никогда не понадобится, можно удалить и весь префикс целиком, чтобы освободить место:

rm -rf ~/wine/buhsoft

Пример

Для демонстрации возьмем приложение Foxit Reader— приложение для работы с PDF-файлами. Программа поставляется со своей собственной службой обновлений. По умолчанию эта служба будет работать, даже если вы настроите Foxit Reader так, чтобы он не обновлялся сам (через «Настройки» > «Обновление»). В Linux, поскольку все работает немного иначе, вы можете сказать: «Хорошо, я не хочу, чтобы служба вообще работала». Вы предпочтете обновлять программу вручную по мере необходимости.

Можно попробовать решить проблему методом перебора — переименовать, удалить или изменить права доступа к исполняемому файлу службы обновления в каталоге WINE, где установлен Foxit Reader. Найдите этот исполняемый файл и запретите его запуск, например:
/home/dedoimedo/.wine/drive_c/Program Files (x86)/Foxit PDF Reader/FoxitPDFReaderUpdateService.exe
Однако это не самый изящный подход. В результате WINE будет выдавать сообщения об ошибках при каждом запуске. Он будет сообщать, что служба автозапуска не может быть запущена:
003c:fixme:service:scmdatabase_autostart_services Служба автозапуска L"FoxitReaderUpdateService" не запустилась: 2

Надлежащим образом управляйте услугами.

Правильный способ — отредактировать файл system.reg в директории~/.wine (или в любом другом месте, где вы используете префикс). Этот файл содержит ссылку на предполагаемую структуру реестра вашей установки WINE в Windows, включая список всех служб. Откройте файл в текстовом редакторе, внесите изменения, сохраните его и перезагрузите WINE. Конечно, предварительно сделайте резервную копию файла system.reg!

Если вам неудобно редактировать файлы напрямую, вы можете запустить Wine Regedit . Это откроет редактор реестра, где вы сможете вносить изменения так же, как если бы вы использовали программу редактирования реестра в Windows. Изменения, внесенные таким образом, будут отражены в файле system.reg. Какой бы метод вы ни выбрали, он сработает. Но сначала сделайте резервную копию, хорошо?

Все сервисы для различных программ хранятся в следующем каталоге:

Система\\Текущий набор элементов управления\\Службы\

Для каждой службы доступны следующие состояния (как в Windows):

0 = Загрузка
1 = Система
2 = Автоматический
3 = Ручной
4 = Отключено

Итак, возвращаясь к нашему примеру с Foxit Reader, в файле system.reg найдите запись FoxitPDFReaderUpdateService. Простой поиск по файлу покажет вам нужную запись. Она будет выглядеть примерно так:

[System\\CurrentControlSet\\Services\\FoxitReaderUpdateService]
«DisplayName»=»Служба обновления Foxit PDF Reader»
«ErrorControl»=dword:00000001
«ImagePath»=»\C:\\Program Files (x86)\\Foxit Software\\Foxit PDF Reader\\FoxitPDFReaderUpdateService.exe» «
ObjectName»=»LocalSystem»
«PreshutdownTimeout»=dword:0002bf20
«Start»=dword:00000002
«Type»=dword:00000110
«WOW64″=dword:00000001

Нас интересует параметр Start DWORD. По умолчанию он имеет значение 2, что означает автоматический запуск. Если вы измените это значение на 3 или 4, служба не запустится. Отредактируйте файл, сохраните и закройте текстовый редактор.

Теперь перезагрузите систему:
wineboot
Вот и всё. Служба не будет работать, и если вы вносили какие-либо изменения в исполняемые файлы вручную, вы больше не будете видеть сообщения об ошибках от WINE. Я продемонстрировал это на примере Foxit Reader, поскольку это единственная установленная у меня программа для Windows, которая действительно включает в себя службу. Но это может быть любая другая программа.

Пример 1️⃣: Самый простой запуск — портативная программа

Допустим, у вас есть портативная версия блокнота Notepad++ (файл notepad++.exe), которая не требует установки.

Базовая команда:

bash
wine ~/Downloads/notepad++.exe

С отдельным префиксом (правильный способ):

bash
# Создаем префикс для утилит
export WINEPREFIX=~/wine/utils
winecfg  # настраиваем один раз

# Запускаем программу
WINEPREFIX=~/wine/utils wine ~/Downloads/notepad++.exe

Пояснение: Программа откроется сразу, без установки. Удобно для тестирования .


Пример 2️⃣: Установка программы из .exe инсталлятора

Самый частый сценарий. Устанавливаем, например, старую версию Photoshop или какую-нибудь утилиту.

Базовая команда:

bash
wine ~/Downloads/setup.exe

С отдельным префиксом (рекомендуется):

bash
# Создаем префикс для графического софта
export WINEPREFIX=~/wine/graphics
winecfg  # выбираем Windows 10

# Запускаем установку
WINEPREFIX=~/wine/graphics wine ~/Downloads/photoshop_setup.exe

Пояснение: Установщик запустится как в Windows. После установки программа будет в папке ~/wine/graphics/drive_c/Program Files/ .


Пример 3️⃣: Установка из .msi файла

Многие корпоративные приложения и пакеты обновлений распространяются как .msi файлы.

Базовая команда:

bash
wine msiexec /i ~/Downloads/application.msi

С отдельным префиксом:

bash
WINEPREFIX=~/wine/msiapps wine msiexec /i ~/Downloads/TessaApplications.msi

Пояснение: Ключ /i означает «install» (установить) .


Пример 4️⃣: Запуск программы с параметрами командной строки

Случай из реальной жизни: конвертер для игры S.T.A.L.K.E.R., который требует параметры запуска .

Есть Windows-программа converter.exe, которая принимает ключи:

  • -level cop:zaton — указать уровень

  • -out zaton — папка вывода

  • -mode le — режим работы

Батник в Windows выглядел бы так:

batch
converter -level cop:zaton -out zaton -mode le -with_lods

Запуск через Wine в Linux:

bash
wine /home/user/converter/converter.exe -level cop:zaton -out zaton -mode le -with_lods

Если программа консольная, лучше использовать wineconsole:

bash
wineconsole /home/user/converter/converter.exe -level cop:zaton -out zaton -mode le -with_lods

Пояснение: Все параметры после .exe передаются программе как есть. wineconsole нужен для корректного отображения консольного вывода .


Пример 5️⃣: Запуск .bat файлов (пакетных файлов Windows)

Бывает, что проекты или сборки запускаются через старые добрые .bat файлы.

Команда:

bash
wine start build_project.bat

Или с префиксом:

bash
WINEPREFIX=~/wine/project wine start C:\\project\\build.bat

Пояснение: Команда start эмулирует запуск из командной строки Windows .


Пример 6️⃣: Запуск встроенных утилит Wine (блокнот, реестр, проводник)

Wine поставляется со встроенными аналогами стандартных Windows-программ. Их можно запускать для отладки или настройки.

Блокнот (Notepad):

bash
wine notepad

Редактор реестра (Regedit):

bash
wine regedit

С префиксом:

bash
WINEPREFIX=~/wine/someapp wine regedit

Проводник (Winefile — аналог Windows Explorer):

bash
wine winefile

Командная строка (cmd):

bash
wineconsole cmd

Пояснение: Утилиты notepadregeditwinefile встроены в Wine и не требуют указания полного пути .


Пример 7️⃣: Запуск Internet Explorer (да, он тоже есть)

Иногда для тестирования верстки или работы старых корпоративных порталов нужен именно IE.

Запуск:

bash
WINEPREFIX=~/wine/ie wine /home/user/.wine/drive_c/Program\ Files/Internet\ Explorer/iexplore.exe

Пояснение: Путь с пробелом экранируется обратным слешем \. Можно также использовать кавычки для всего пути .


Пример 8️⃣: Исправление ошибок с библиотеками (winetricks)

Предположим, программа запустилась, но ругается на отсутствие msvcp140.dll (библиотека Visual C++ 2015-2019).

Установка недостающих библиотек:

bash
# Для префикса по умолчанию
winetricks vcrun2019

# Для конкретного префикса
WINEPREFIX=~/wine/graphics winetricks vcrun2019

Другие частые зависимости:

bash
winetricks dotnet48        # .NET Framework 4.8
winetricks corefonts       # стандартные шрифты Windows
winetricks directx9        # DirectX 9 для старых игр
winetricks allfonts        # все шрифты (осторожно, много)

Пояснение: Winetricks сам скачает и установит нужные компоненты из официальных источников Microsoft .


Пример 9️⃣: Принудительное завершение зависшей программы

Если программа зависла и не закрывается, помогает «жесткая перезагрузка» Wine-сервера.

Для текущего префикса:

bash
wineserver -k

Для конкретного префикса:

bash
WINEPREFIX=~/wine/games wineserver -k

Пояснение: -k означает «kill» — убить все процессы Wine в этом префиксе .


Пример 🔟: Полное удаление программы с очисткой

Правильный способ удалить программу, установленную через Wine.

Через графический интерфейс:

bash
wine uninstaller

С префиксом:

bash
WINEPREFIX=~/wine/oldapp wine uninstaller

Из командной строки (тихо):

bash
wine uninstaller --remove "Название программы"

Пояснение: Откроется окно «Установка и удаление программ» — как в Windows .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.