Wine — это мощный инструмент, позволяющий запускать Windows-приложения на Linux и других POSIX-совместимых операционных системах без необходимости установки самой Windows. Данное руководство предоставляет всю необходимую информацию для эффективного использования Wine.

Что такое Wine?
Wine (акроним от "Wine Is Not an Emulator") — это совместимый слой, способный запускать приложения Windows на нескольких POSIX-совместимых операционных системах, таких как Linux, macOS и BSD. Вместо симуляции внутренней логики Windows, как это делает виртуальная машина или эмулятор, Wine преобразует вызовы Windows API в POSIX-вызовы в реальном времени, устраняя потери производительности и памяти, характерные для других методов, и позволяя чисто интегрировать Windows-приложения в ваш рабочий стол.
С помощью Wine можно запускать программы Windows прямо на Linux без использования виртуальных компьютеров. Если говорить о Kali Linux, то одним из интересных примеров является программа Router Scan by Stas'M, которая прекрасно работает через Wine.
Возможности и ограничения Wine
Что может Wine?
- Запуск 64-битных, 32-битных, 16-битных программ и библиотек Windows 9x/NT/2000/XP/Vista/7/8/10/11 и Windows 3.x
- Поддержка игр и приложений на основе DirectX (поддержка Direct3D до DirectX 12)
- Поддержка игр и приложений на основе OpenGL и Vulkan
- Поддержка DirectShow с использованием Gstreamer для кодеков
- Direct2D, поддержка DirectWrite
- Поддерживаются MMDevice API, XAudio, WinMM, DirectSound audio API
- Печать через драйвер PostScript в главную систему печати (обычно CUPS)
- Позволяет программе Windows взаимодействовать с графикой на основе X11, звуковыми устройствами через ALSA, PulseAudio, сетями (TCP/IP и IPX) и другим оборудованием
Ограничения Wine
- Не все приложения работают хорошо или вообще работают
- Невозможность работать с устройствами напрямую, например, если для устройства требуется драйвер, то бессмысленно устанавливать Windows-драйвер в Wine — вам нужно найти версию драйвера для Linux и установить её
- Для работы некоторых приложений могут потребоваться дополнительные библиотеки, например, Visual C++ Redistributable for Visual Studio, которые нужно устанавливать отдельно в Wine
Установка Wine
64-битный или 32-битный Wine?
Перед установкой важно понять разницу между 64-битным и 32-битным Wine:
- 32-битный Wine работает как в 32-битных, так и в 64-битных версиях Linux/Unix. На нём будут работать 16-битные и 32-битные приложения Windows.
- 64-битный Wine работает только на 64-битных установках. Для запуска 32-битных приложений Windows требуется установка 32-битных библиотек.
- Главное, что из этого следует — даже при установке 64-битного Wine необходимо активировать 32-битные репозитории, поскольку многие приложения Windows по-прежнему являются 32-битными и в любом случае необходимо установить 32-битные библиотеки, иначе многие программы просто не будут работать.
Установка Wine в Debian, Kali Linux, Linux Mint, Ubuntu и их производные
Выполните следующие команды:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine winbind
text
После установки запустите Wine — возможно, он предложит скачать необходимые шрифты и другие компоненты:
winecfg
Чтобы проверить версию Wine выполните команду:
wine --version
Установка Wine в Arch Linux
Откройте текстовый файл /etc/pacman.conf:
sudo gedit /etc/pacman.conf
В нём найдите и раскомментируйте строки (убедитесь, что раскомментировали обе строки, иначе изменения не вступят в силу):
[multilib]
Include = /etc/pacman.d/mirrorlist
text
Обновите информацию о пакетах:
sudo pacman -Sy
Выполните установку:
sudo pacman -S wine wine_gecko wine-mono
sudo pacman -S lib32-mpg123 lib32-gnutls
text
После установки Wine важно правильно его настроить. Основным инструментом для этого является программа winecfg.Настройка Wine с помощью winecfg
Основные настройки winecfg
Запуск приложений в Wine
Запуск двойным кликом по исполнимому файлу
Для запуска Windows приложений в Linux обычно достаточно дважды кликнуть по ним. Но может быть так, что .exe файл будет открываться менеджером архивов или другим приложением (обычно менеджером архивов).
В этом случае кликните по файлу правой кнопкой мыши, выберите пункт «Открыть с помощью» и выберите Wine.
Если у вас в контекстном меню не появился Wine, то сделайте так:
- нажмите правой кнопкой на приложение, которое хотите запустить
- выберите «Открыть с помощью», а затем «Другое»
- поставьте галочку «Пользовательская команда» и там, где строка для ввода, введите wine. Поставьте галочку «Сохранить ассоциацию» и «Установить как приложение по умолчанию», нажмите ОК. Теперь все .exe файлы будут открываться двойным кликом.
Запуск из командной строки
Для запуска приложения из командной строки используйте команду:
wine путь/к/программе.exe
Решение распространенных проблем
Что делать, если программа не работает?
Если программа не работает в Wine, попробуйте следующие шаги для диагностики и решения проблемы:
- Проверьте конфигурацию своей Wine: Убедитесь, что настройки winecfg соответствуют требованиям приложения
- Попробуйте разные версии Windows: В winecfg можно изменить версию Windows, которую эмулирует Wine
- Используйте различные пути (paths) для запуска: Иногда проблема может быть связана с путями к файлам
- Поэкспериментируйте с настройкой DLL: Попробуйте разные настройки библиотек DLL для проблемного приложения
- Проверьте рабочее окружение: Убедитесь, что в системе установлены все необходимые зависимости
- Используйте другой режим графического интерфейса: Попробуйте разные настройки графики в winecfg
- Проверьте приложение: Убедитесь, что приложение совместимо с Wine
- Ищите причину: Используйте отладочные возможности Wine для выявления конкретных проблем
Отладка с помощью WINEDEBUG
Для отладки проблем с приложениями можно использовать переменную окружения WINEDEBUG. Например:
WINEDEBUG=warn+all wine программа.exe
Эта команда выведет предупреждения и другую отладочную информацию, которая может помочь в диагностике проблемы.
Дополнительные возможности Wine
Установка дополнительных компонентов Windows
Некоторые приложения требуют установки дополнительных компонентов Windows, таких как .NET Framework, Visual C++ Redistributable и другие. Эти компоненты можно установить в Wine с помощью winetricks или непосредственно запустив их установщики с помощью Wine.
Использование winetricks
Winetricks — это скрипт, который упрощает установку различных компонентов и библиотек, необходимых для работы некоторых приложений в Wine. С его помощью можно легко установить недостающие DLL, шрифты и другие зависимости.
Перспективы развития Wine
Wine продолжает активно развиваться. В недавних релизах были добавлены такие функции, как:
- Быстрая синхронизация с использованием NTSync
- Поддержка 16-битных приложений в новом режиме WoW64
- Начальная поддержка объектов D3DKMT
- Генерация и установка WinMD (Windows Metadata) файлов
- Различные исправления ошибок
Часто задаваемые вопросы (FAQ)
В чем разница между Wine и виртуальной машиной?
Wine не является виртуальной машиной. В отличие от виртуальных машин, которые запускают полноценную операционную систему внутри другой, Wine преобразует вызовы Windows API в POSIX-вызовы в реальном времени, что устраняет потери производительности и памяти:cite[2].
Все ли Windows-приложения работают в Wine?
Не все приложения работают хорошо или вообще работают. Тем не менее огромное количество Windows программ прекрасно запускаются и работают в Linux благодаря Wine.
Нужно ли устанавливать Windows для работы Wine?
Нет, Wine не требует установки Windows. Это самостоятельная реализация Windows API, работающая поверх вашей Linux-системы:cite[2].
Какую версию Wine выбрать: 32-битную или 64-битную?
Даже при установке 64-битного Wine необходимо активировать 32-битные репозитории, поскольку многие приложения Windows по-прежнему являются 32-битными и необходимо установить 32-битные библиотеки, иначе многие программы просто не будут работать.
Можно ли запускать игры через Wine?
Да, Wine поддерживает игры и приложения на основе DirectX (поддержка Direct3D до DirectX 12), OpenGL и Vulkan. Многие игры успешно работают через Wine, хотя для некоторых может потребоваться дополнительная настройка.
Что делать, если приложение не запускается в Wine?
Попробуйте разные версии Windows в настройках winecfg, поэкспериментируйте с настройкой DLL, проверьте требования приложения и наличие всех необходимых библиотек.
Wine — это мощный инструмент, который значительно расширяет возможности Linux-систем, позволяя запускать Windows-приложения без необходимости установки самой Windows. С правильной настройкой и пониманием его работы вы сможете успешно использовать нужные вам Windows-программы в Linux-окружении.