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, но для начала подойдут и стандартные.
-
Включаем поддержку 32-битной архитектуры. Это обязательный шаг, так как 80% Windows программ до сих пор 32-битные.
sudo dpkg --add-architecture i386 -
Обновляем список пакетов.
sudo apt update
-
Устанавливаем Wine. Самый простой способ — использовать мета-пакет из стандартного репозитория.
sudo apt install wine
Совет: Если вы хотите устанавливать программы через графический интерфейс, дополнительно поставьте
winetricks:sudo apt install winetricks
Установка в Red OS и других RPM-дистрибутивах
Для систем, использующих пакетный менеджер Yum/Dnf, команда будет следующей:
sudo dnf install wine
Или для старых версий:
sudo yum install wine
Проверка установки
После завершения процесса убедитесь, что все встало корректно:
wine --version
Вы должны увидеть номер версии (например, wine-8.0). Это значит, что ядро системы готово к работе.
Базовая настройка Wine: Первый запуск
После установки Wine необходимо инициализировать рабочее окружение. Это создаст так называемый «префикс» — папку, которая будет имитировать диск C: и реестр Windows.
-
Откройте терминал и введите команду:
winecfg
-
При первом запуске система предложит установить дополнительные компоненты:
-
Mono (нужен для приложений, написанных на .NET)
-
Gecko (нужен для встроенных браузерных движков)
Смело соглашайтесь на установку обоих — это избавит вас от множества ошибок в будущем.
-
-
После завершения установки откроется окно конфигурации. Перейдите на вкладку Applications (Приложения) и выберите версию Windows, с которой ваша программа лучше всего совместима. Для большинства современных приложений подойдет Windows 10, для старых игр — Windows 7 или даже Windows XP.
Правильная организация: Используем отдельные префиксы (WINEPREFIX)
Это самый важный совет, который я могу дать как системный администратор. Никогда не ставьте все программы в один префикс!
Представьте: одна программа требует старую версию библиотеки Visual C++ 2008, а другая — свежую 2022. Если поставить их в один префикс, начнутся конфликты, известные как «DLL Hell». Чтобы этого избежать, для каждого приложения создается свой изолированный «мирок».
Создание отдельного 32-битного префикса для, например, старого бухгалтерского софта:
export WINEPREFIX=~/wine/buhsoft export WINEARCH=win32 winecfg
Теперь все настройки и файлы этого префикса будут храниться в папке ~/wine/buhsoft.
Установка Windows-программ через Wine
Теперь, когда у нас есть чистый префикс, можно приступать к установке.
Установка .exe файлов
-
Скачайте установочный файл программы (например,
setup.exe). -
Запустите установку, указав путь к нужному префиксу:
WINEPREFIX=~/wine/buhsoft wine ~/Downloads/setup.exe
Процесс установки будет выглядеть в точности как в Windows: мастера, кнопки «Далее», лицензионное соглашение.
Установка .msi файлов
Если у вас файл с расширением .msi, команда немного меняется:
WINEPREFIX=~/wine/buhsoft wine msiexec /i ~/Downloads/program.msi
Решение типичных проблем: Winetricks и библиотеки
Самая частая ошибка при запуске: сообщение вида «Отсутствует msvcp140.dll» или «Не найдена d3dx9_43.dll». Это значит, что в вашем префиксе не хватает определенных библиотек.
Для их установки используем winetricks. Запустите его с параметром вашего префикса:
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 со следующим содержимым:
[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), которая не требует установки.
Базовая команда:
wine ~/Downloads/notepad++.exe
С отдельным префиксом (правильный способ):
# Создаем префикс для утилит export WINEPREFIX=~/wine/utils winecfg # настраиваем один раз # Запускаем программу WINEPREFIX=~/wine/utils wine ~/Downloads/notepad++.exe
Пояснение: Программа откроется сразу, без установки. Удобно для тестирования .
Пример 2️⃣: Установка программы из .exe инсталлятора
Самый частый сценарий. Устанавливаем, например, старую версию Photoshop или какую-нибудь утилиту.
Базовая команда:
wine ~/Downloads/setup.exe
С отдельным префиксом (рекомендуется):
# Создаем префикс для графического софта 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 файлы.
Базовая команда:
wine msiexec /i ~/Downloads/application.msi
С отдельным префиксом:
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 выглядел бы так:
converter -level cop:zaton -out zaton -mode le -with_lods
Запуск через Wine в Linux:
wine /home/user/converter/converter.exe -level cop:zaton -out zaton -mode le -with_lods
Если программа консольная, лучше использовать wineconsole:
wineconsole /home/user/converter/converter.exe -level cop:zaton -out zaton -mode le -with_lods
Пояснение: Все параметры после .exe передаются программе как есть. wineconsole нужен для корректного отображения консольного вывода .
Пример 5️⃣: Запуск .bat файлов (пакетных файлов Windows)
Бывает, что проекты или сборки запускаются через старые добрые .bat файлы.
Команда:
wine start build_project.bat
Или с префиксом:
WINEPREFIX=~/wine/project wine start C:\\project\\build.bat
Пояснение: Команда start эмулирует запуск из командной строки Windows .
Пример 6️⃣: Запуск встроенных утилит Wine (блокнот, реестр, проводник)
Wine поставляется со встроенными аналогами стандартных Windows-программ. Их можно запускать для отладки или настройки.
Блокнот (Notepad):
wine notepad
Редактор реестра (Regedit):
wine regedit
С префиксом:
WINEPREFIX=~/wine/someapp wine regedit
Проводник (Winefile — аналог Windows Explorer):
wine winefile
Командная строка (cmd):
wineconsole cmd
Пояснение: Утилиты notepad, regedit, winefile встроены в Wine и не требуют указания полного пути .
Пример 7️⃣: Запуск Internet Explorer (да, он тоже есть)
Иногда для тестирования верстки или работы старых корпоративных порталов нужен именно IE.
Запуск:
WINEPREFIX=~/wine/ie wine /home/user/.wine/drive_c/Program\ Files/Internet\ Explorer/iexplore.exe
Пояснение: Путь с пробелом экранируется обратным слешем \. Можно также использовать кавычки для всего пути .
Пример 8️⃣: Исправление ошибок с библиотеками (winetricks)
Предположим, программа запустилась, но ругается на отсутствие msvcp140.dll (библиотека Visual C++ 2015-2019).
Установка недостающих библиотек:
# Для префикса по умолчанию winetricks vcrun2019 # Для конкретного префикса WINEPREFIX=~/wine/graphics winetricks vcrun2019
Другие частые зависимости:
winetricks dotnet48 # .NET Framework 4.8 winetricks corefonts # стандартные шрифты Windows winetricks directx9 # DirectX 9 для старых игр winetricks allfonts # все шрифты (осторожно, много)
Пояснение: Winetricks сам скачает и установит нужные компоненты из официальных источников Microsoft .
Пример 9️⃣: Принудительное завершение зависшей программы
Если программа зависла и не закрывается, помогает «жесткая перезагрузка» Wine-сервера.
Для текущего префикса:
wineserver -k
Для конкретного префикса:
WINEPREFIX=~/wine/games wineserver -k
Пояснение: -k означает «kill» — убить все процессы Wine в этом префиксе .
Пример 🔟: Полное удаление программы с очисткой
Правильный способ удалить программу, установленную через Wine.
Через графический интерфейс:
wine uninstaller
С префиксом:
WINEPREFIX=~/wine/oldapp wine uninstaller
Из командной строки (тихо):
wine uninstaller --remove "Название программы"
Пояснение: Откроется окно «Установка и удаление программ» — как в Windows .