Полное руководство по Wine: от установки до примеров использования


Оглавление

1. Для чего Wine

2. Возможности и ограничения Wine

3. 64-битный или 32-битный Wine?

4. Как установить Wine

4.1 Установка Wine в Debian, Kali Linux, Linux Mint, Ubuntu и их производные

4.2 Установка Wine в Arch Linux

5. Как запустить программу в Wine

5.1 Запуск двойным кликом по исполнимому файлу

5.2 Запуск в командной строке

5.3 Использование wine start

5.4 Передача аргументов командной строки Windows

5.5 Запуск файлов .msi

5.6 Графическая среда Wine в стиле Explorer (Wine File Manager)

5.7 Как в Wine запустить файл .bat

6. Как установить программу в Wine и создать ярлык

7. Встроенные в Wine программы

8. Как удалить программу из Wine

9. Файловая система Wine

10. WINEPREFIX (префиксы)

11. Как заставить Wine запускать приложение на виртуальном рабочем столе


12. Помощники в установке программ и библиотек в Wine

12.1 PlayOnLinux

12.2 Winetricks

12.3 Что лучше, PlayOnLinux или Winetricks?

13. Использование реестра и Regedit


Для чего Wine

Эта инструкция расскажет об использовании Wine. Данные советы по использованию применимы как к Kali Linux, так и к любому другому дистрибутиву Linux.

С помощью Wine можно запускать программы Windows прямо на Linux без использования виртуальных компьютеров. Если говорить о Kali Linux, то одним из интересных примеров является программа Router Scan by Stas'M, которая прекрасно работает через Wine (находит и взламывает роутеры, но не работают функции, связанные с использованием Wi-Fi адаптера).

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

Wine позволяет обойти все эти ограничения — для запуска программ Windows не нужно устанавливать эту операционную систему и приложениям для работы требуется всего несколько десятков мегабайт оперативной памяти.

Но у Wine есть и недостатки — не все приложения работают хорошо или вообще работают. Тем не менее огромное количество Windows программ прекрасно запускаются и работают в Linux благодаря Wine.

Помните, что многие бесплатные программы являются кроссплатформенными и вы можете их установить из стандартных репозиториев вашего дистрибутива. Для таких программ не нужен Wine. Примеры популярных кроссплатформенных программ: LibreOffice, Google Chrome, Firefox, Double Commander, VirtualBox, Etcher, VLC, DeadBeef, GIMP, OBS Studio, Viber, Wireshark, Apache, PHP, MySQL, Calibre, Netbeans, Burp Suite, Visual Studio Code, KeePass, KeePassXC, OpenShot Dropbox, Python, Ruby, Perl, PowerShell, SSH, Vuse BitTorrent Client, FileZilla, Tor Browser, JDownloader и очень многие другие. Всем этим программам не нужен Wine, поскольку они имеют «родные» установочные пакеты для Linux.

Прежде чем пытаться установить и запустить программу через Wine, поищите её с помощью менеджера пакетов, например:

apt search OpenShot

Возможности и ограничения Wine

Программа способна запускать 64-битные, 32-битные, 16-битные программы и библиотеки Windows 9x/NT/2000/XP/Vista/7/8/10/11 и Windows 3.x

Поддержка Win32 API:

  • Поддержка игр и приложений на основе DirectX (поддержка Direct3D до DirectX 12)
  • Поддержка игр и приложений на основе OpenGL и Vulkan
  • Поддержка DirectShow с использованием GStreamer для кодеков
  • Direct2D, поддержка DirectWrite
  • Поддерживаются MMDevice API, XAudio, WinMM, DirectSound audio API.
  • Печать через драйвер PostScript в главную систему печати (обычно CUPS)
  • Драйвер расширенного метафайла (EMF) и метафайла Windows (WMF)
  • Desktop-in-a-box или смешанные окна

Позволяет программе Windows взаимодействовать с:


  • Графикой на основе X11, которая позволяет удалённо отображать на любом X-терминале
  • Графикой на базе macOS и Android
  • Шрифты X11, TrueType (.ttf/.ttc) и Windows Bitmap (.fon)
  • Звуковыми устройствами через ALSA, OSS, PulseAudio, Core Audio и т. д.
  • Многоязычной клавиатурой и поддержка метода ввода CJK через XIM
  • Модемами, последовательными устройствами
  • Сетями (TCP/IP и IPX)
  • Сканерами ASPI
  • Планшетами Windows через XInput (например, Wacom)
  • Устройствами видеозахвата через v4l2
  • Устройствами HID через IOHid (MacOS), evdev (Linux), hidraw (Linux), SDL2

Как вы можете увидеть, список впечатляющий и позволяет, к примеру, запускать игры для которых требуется DirectX и при этом выводить звук. Приложения из Wine могут работать с сетью и даже имеют доступ к некоторым аппаратным возможностям (принтеры, сканеры).

Если для работы приложения необходимы дополнительные библиотеки, например, Visual C++ Redistributable for Visual Studio, то их возможно установить в Wine и запускать приложение в среде с установленной этой библиотекой.

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

64-битный или 32-битный Wine?

В этой инструкции для установки Wine мы включим поддержку репозиториев для 32-битных платформ (i386) для того, чтобы скачать необходимые библиотеки. Может возникнуть вопрос, существует ли 64-битный Wine и если да, зачем нам подключать репозитории для i386 и скачивать 32-битную версию?

Да. 64-битный Wine доступен в Linux начиная с версии 1.2. Бинарные пакеты WineHQ доступны для 64-битных версий, и большинство основных дистрибутивов упаковывают их для пользователей. Обычно установка должна быть такой же простой, как установка пакета Wine для вашего дистрибутива через менеджер пакетов.

Но имеется несколько очень важных замечаний:

  • 32-битный Wine работает как в 32-битных, так и в 64-битных версиях Linux/Unix. На нём будут работать 16-битные и 32-битные приложения Windows.
  • 64-битный Wine работает только на 64-битных установках и пока что был тщательно протестирован только в Linux. Для запуска 32-битных приложений Windows требуется установка 32-битных библиотек. И 32-битные, и 64-битные приложения Windows (должны) работать с ним; однако есть ещё много ошибок.
  • Текущий Wine включает поддержку 64-битного Wine в Mac OS X; однако это не было тщательно проверено, и некоторые приложения могут никогда не работать из-за несовместимости ABI между Win64 и OS X.

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

При установке можно явно выбрать пакет wine64, но даже если вы установите wine, то им будет 64-битная версия, если у вас 64-битный Linux.

Как установить Wine

Установка Wine в Debian, Kali Linux, Linux Mint, Ubuntu и их производные

Выполните следующие команды:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine winbind

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

winecfg

Чтобы проверить версию Wine выполните команду:

wine --version

Установка Wine в Arch Linux

Откройте текстовый файл /etc/pacman.conf:

sudo gedit /etc/pacman.conf

В нём найдите и раскомментируйте строки (убедитесь, что раскомментировали обе строки, иначе изменения не вступят в силу):

[multilib]
Include = /etc/pacman.d/mirrorlist

Обновите информацию о пакетах:

sudo pacman -Sy

Выполните установку:


sudo pacman -S wine wine_gecko wine-mono
sudo pacman -S lib32-mpg123 lib32-gnutls

Как запустить программу в Wine

Запуск двойным кликом по исполнимому файлу

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

В этом случае кликните по файлу правой кнопкой мыши, выберите пункт «Открыть с помощью» и выберите Wine.

Если у вас в контекстном меню не появился Wine, то сделайте так:

  • нажмите правой кнопкой на приложение, которое хотите запустить
  • выберите «Открыть с помощью», а затем «Другое»

  • поставьте галочку «Пользовательская команда» и там, где строка для ввода, введите wine. Поставьте галочку «Сохранить ассоциацию» и «Установить как приложение по умолчанию», нажмите ОК. Теперь все .exe файлы будут открываться двойным кликом.

Обратите внимание, насколько экономно используется оперативная память — для работы Router Scan by Stas'M в Kali Linux нужен всего 1 мегабайт оперативной памяти. Если бы для запуска этой программы мы устанавливали Windows в виртуальную машину, то потребовалось бы несколько гигабайт для работы ОС. К тому же, при использовании Wine необязательно, чтобы процессор поддерживал виртуализацию — в отличие от VirtualBox и других аналогичных способов запуска виртуальных компьютеров.

Запуск в командной строке

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

cd '.wine/drive_c/Games/Tron'
wine tron.exe

Использование wine start

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

Вам нужно использовать wine start, если вы укажете полный путь к .exe, потому что это позволяет Wine установить рабочий каталог для программы, если он ей нужен.

Вы можете указать Wine путь в стиле DOS или Windows в одинарных кавычках, например:

wine start 'C:\Games\Tron\tron.exe'

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

wine start "C:\\Games\\Tron\\tron.exe"

Если вы предпочитаете использовать путь в стиле Unix, используйте параметр /unix для запуска, например:

wine start /unix "$HOME/installers/TronSetup.exe"

Передача аргументов командной строки Windows

Если вы используете программу с аргументами в Windows, например:

quake.exe -map e1m1

То вы можете сделать то же самое в Wine, запустив:

wine quake.exe -map e1m1

То есть командная строка идентична, за исключением wine перед ней. Обратите внимание, однако, что вам может потребоваться экранировать некоторые специальные символы обратной косой чертой из-за того, как они обрабатываются в оболочке Linux. Например:

quake.exe -map C:\Quake\e1m1.bsp

становится:

wine quake.exe -map C:\\Quake\\e1m1.bsp

Запуск файлов .msi

Файлы MSI нельзя запускать напрямую; вам нужно использовать либо программу Wine msiexec, либо запуск Wine с терминала:

wine msiexec /i whatever.msi

или:

wine start whatever.msi

Графическая среда Wine в стиле Explorer (Wine File Manager)

Если вы предпочитаете использовать графический интерфейс для управления файлами, возможно, вам стоит рассмотреть возможность использования winefile. Это приложение Winelib поставляется с Wine и может быть найдено с другими программами Wine. Это полезный способ просмотреть конфигурацию вашего диска и найти файлы, а также вы можете запускать программы прямо из Winefile. Обратите внимание, что многие функции ещё не реализованы.

Чтобы его открыть выполните:

winefile

Как в Wine File Manager настроить Избранное (Favorites) и добавить папки

Wine File Manager это аналог проводника Windows. Его можно открыть командой

winefile

Там вы можете увидеть несколько ярлыков и диски.

Среди ярлыков вы найдёте:

  • My Computer
  • Documents
  • Trash
  • / (корень файловой системы Linux)

В My Computer собраны все диски, подключённые к Linux. Диск «C:» это то, что размещено в папке ~/.wine/drive_c/. Диск «Z:» – это корневой диск файловой системы Linux. Другие буквы — это подключённые к Linux флешки и диски.

Корневым элементов ярлыков является Desktop, то есть рабочий стол. Имеется ввиду рабочий стол Linux, а не Windows.

То есть если вы хотите, чтобы в Wine File Manager была видна новая папка, то создайте её на рабочем столе вашего Linux, например:

mkdir ~/Desktop/Favorites/

В эту папку вы можете скопировать любые файлы для быстрого доступа.

Также вы можете создавать ярлыки в этой папке на файлы и программы как в файловой системе Wine, так и за её пределами.

Команда для создания ярлыка:

ln -s TARGET DIRECTORY

Например, следующая команда создаст в папке ~/Desktop/Favorites/ ссылку на файл ~/.wine/drive_c/windows/notepad.exe:

ln -s ~/.wine/drive_c/windows/notepad.exe ~/Desktop/Favorites/

Чтобы добавить папки «Загрузки», «Видео», «Музыка» рядом с папкой «Документы» в дерево папок проводника Explorer вы можете создать соответствующие ссылки:

ln -s ~/Downloads/ ~/Desktop/
ln -s ~/Music/ ~/Desktop/
ln -s ~/Videos/ ~/Desktop/

Если вы хотите изменить буквы дисков, то запустите Wine configuration:

winecfg

И перейдите на вкладку Drives для настройки отображения дисков в Wine File Manager:

Как в Wine запустить файл .bat

Вы можете запустить файл .bat разными способами:

1. Выполните команду

winefile

Найдите файл .bat и запустите его двойным кликом.

2. Выполните команду

wine explorer

И найдите в окне Проводника нужный вам файл.

Либо выполните:

wine explorer /ПУТЬ/ДО/ПАПКИ

чтобы сразу попасть в нужную папку.

Когда найдёте файл .bat, то дважды кликните на него.

3. Вы можете запустить файл .bat в командной строке, используя конструкцию вида:

wine start /ПУТЬ/ДО/ФАЙЛА.bat

Если вы используете путь до файла в файловой системе Linux, то обязательно нужно указать опцию /unix.

Как установить программу в Wine и создать ярлык

Если программа является портативной, то вы можете поместить её в любое место на диске - необязательно в папку Wine. Кстати, по умолчанию диском C: в Wine является папка ~/.wine/drive_c/.

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

Если программа распространяется в виде установщика (инсталлятора), то просто запустите этот установщик с помощью Wine. В большинстве случаев всё пройдёт как в Windows, будет выполнена обычная установка и на рабочем столе вашей Linux и в меню появится ярлык для запуска программы.

Для портативной программой вы также можете сделать ярлык. Для этого кликните правой кнопкой мыши по рабочему столу и выберите пункт «Создать кнопку запуска здесь» (в Cinnamon), «Создать значок запуска» (в XFCE) или аналогичный пункт.

Обычно есть возможность установить иконку, в том числе присутствуют иконки программ, когда-либо запускаемых в Wine.

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

bash -c 'cd /ПУТЬ/ДО/ПАПКИ/С/ФАЙЛОМ/; wine ./ФАЙЛ.exe'

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

К примеру, исполнимый файл находится в папке /home/mial/.wine/drive_c/Program Files (x86)/foobar2000/ и называется foobar2000.exe, тогда команда запуска следующая:

bash -c 'cd "/home/mial/.wine/drive_c/Program Files (x86)/foobar2000/"; wine ./foobar2000.exe'

Обратите внимание, что:

  • указан абсолютный, а не относительный путь до папки
  • если в пути содержатся пробелы или другие специальные для оболочки символы (например, скобки), то они должны быть обязательно экранированы или путь должен быть помещён в кавычки.

Другой пример, когда файл находится не на диске Wine: нужно создать ярлык для запуска файла /mnt/disk_d/Share/Conses/ConsFed/cons.exe, тогда команда запуска следующая:

bash -c 'cd /mnt/disk_d/Share/Conses/ConsFed/; wine ./cons.exe'

Если для работы программы необходима специальная версия Wine или дополнительные компоненты, то можно найти скрипты, которые упрощают их установку, о них будет позже в разделах, посвящённых PlayOnLinux и winetricks.

Встроенные в Wine программы

В Wine имеется несколько встроенных «стандартных программ Windows».

Блокнот

Запуск

notepad

или

wine notepad

Редактор реестра

Запуск

regedit

или

wine regedit

Более подробно о реестре и редакторе реестра будет ниже.

Проводник

Чтобы открыть проводник, выполните команду:

wine explorer

В проводнике вы можете открыть «Мой компьютер» - там будут ссылки на все диски в Linux. Диск «C:» это то, что размещено в папке ~/.wine/drive_c/. Диск «Z:» - это корневой диск файловой системы Linux. Другие диски — это подключённые к Linux флешки и диски.

В проводнике вы можете запускать файлы .bat двойным кликом, а также управлять файлами (перемещать, создавать, удалять их) в графическом интерфейсе.

Диспетчер задач

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

wine taskmgr

Игра «Сапёр»

Запуск:

winemine

Браузер Internet Explorer

На самом деле, это не настоящий IE — это браузер на основе Firefox.

Запуск:

wine iexplore

При желании, можно установить старые версии Internet Explorer, но даже Windows в последних версиях отказалась от использования IE и перешла на веб-браузер на основе Chrome.

Командная строка Windows

Для запуска выполните:

wine cmd

Встроенные команды CMD:

ASSOC           Показывает или изменяет сопоставления типов файлов
ATTRIB          Показывает или изменяет DOS-атрибуты файла
CALL            Вызывает один bat-файл из другого
CD (CHDIR)      Изменяет текущий каталог
CHOICE          Ждёт выбора из списка
CLS             Очищает экран консоли
COPY            Копирует файл(ы)
CTTY            Изменяет устройство ввода/вывода
DATE            Показывает или изменяет системную дату
DEL (ERASE)     Удаляет файл или несколько файлов
DIR             Выводит содержимое каталога
ECHO            Выводит текст непосредственно в консоль
ENDLOCAL        Заканчивает действие локальных изменений окружения
FTYPE           Выводит или изменяет команды открытия, связанные с типами файлов
HELP            Показывает краткую подсказку по команде
MD (MKDIR)      Создаёт каталог
MKLINK  Создаёт символическую ссылку
MORE            Выводит данные по страницам
MOVE            Перемещает файл, несколько файлов или дерево каталогов
PATH            Показывает или изменяет путь поиска программ
PAUSE           Останавливает исполнение bat-файлa
POPD            Восстанавливает предыдущий текущий каталог, сохранённый с
                помощью
PROMPT          Изменяет приглашение командной строки
PUSHD           Сохраняет текущий каталог и переходит в другой
REN (RENAME)    Переименовывает файл
RD (RMDIR)      Удаляет каталог
SET             Показывает или изменяет переменные окружения
SETLOCAL        Начинает действие локальных изменений окружения
START           Запускает программу, или открывает файл в соответствующей
                программе
TIME            Показывает или изменяет текущее системное время
TITLE           Устанавливает заголовок окна cmd для текущей сессии
TYPE            Выводит содержимое текстового файла
VER             Показывает текущую версию CMD
VOL             Показывает метку тома дискового устройства
XCOPY           Копирует файлы или деревья каталогов
EXIT            Закрывает CMD

Выполните

HELP <команда>

для дополнительной информации по перечисленным командам

Установщик MSI файлов

Эта программа упомянута выше, в разделе «5.5 Запуск файлов .msi».

Запуск команды:


msiexec

Панель управления

Для запуска выполните:

wine control

Программа для просмотра файлов .chm в Linux

В Wine присутствует встроенная программа hh.exe, которая может открывать файлы с расширением .chm.

Файлы .chm, ещё их называют MS Windows HtmlHelp Data — это обычно файлы со справкой по использованию программы с которой они распространяются.

После установки Wine вы можете открыть файл CHM двойным кликом. Ещё один способ открыть файл CHM — использовать командную строку:

wine hh.exe '/ПУТЬ/ДО/ФАЙЛА.chm'

Например:

wine hh.exe '/home/mial/Downloads/VeraCrypt User Guide.chm'

Как удалить программу из Wine

Чтобы удалить программу из Wine, перейдите в настройки «Установка/удаление программ», для этого выполните:

wine uninstaller

Далее выберите программу для удаления и нажмите кнопку «Изменит/удалить». Ярлыки, созданные во время установки, будут удалены автоматически.

Файловая система Wine

По умолчанию физически файлы размещены в папке ~/.wine. То есть если вы хотите «переустановить Windows», то есть полностью удалить все настройки и установленные программы, то можете удалить эту папку. Но помните, что сделанные в меню и на рабочем столе ярлыки останутся, поскольку расположены в других местах.

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

В проводнике

wine explorer

вы можете открыть «Мой компьютер» - там будут ссылки на все диски в Linux. Диск «C:» это то, что размещено в папке ~/.wine/drive_c/. Диск «Z:» - это корневой диск файловой системы Linux. Другие диски — это подключённые к Linux флешки и диски.

Вы можете изменить это, для этого откройте «Настройки Wine» и перейдите на вкладку «Диски»:

winecfg

WINEPREFIX (префиксы)

По умолчанию, Wine хранит файлы настроек и установленные приложения Windows в каталоге ~/.wine. Этот каталог называется префиксом Wine (Wine prefix). Он создаётся и обновляется автоматически по необходимости при запуске программ Windows и программ настройки Wine, например winecfg. Каталог префикса также содержит стандартную структуру корневого раздела каталогов Windows, которая представляется программам Windows как диск C:.

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

Для примера, если вы запускаете одно приложение с

env WINEPREFIX=~/.win-a wine program-a.exe

а другое с

env WINEPREFIX=~/.win-b wine program-b.exe

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

Примечание: Тем не менее, префиксы Wine не являются песочницами. Программы, запущенные в Wine могут также получать доступ к оставшейся части системы (например, раздел Z: обычно соответствует корню файловой системы /).

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

env WINEPREFIX=~/.customprefix wineboot -u

Вы можете изменить префикс, который использует Wine, изменив переменную среды WINEPREFIX (за пределами Wine). Для этого запустите в терминале что-то вроде следующего:

export WINEPREFIX=~/.wine-new
wine winecfg

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

unset WINEPREFIX

Или просто установите значение WINEPREFIX на ~/.wine.

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

WINEPREFIX=ПУТЬ_ДО_wineprefix wine winecfg

Вы можете переименовывать, перемещать, копировать и удалять префиксы, не затрагивая другие, и каждый префикс имеет свой собственный экземпляр wineserver.

Как создать 32-битный префикс Wine в 64-битной системе?

В настоящее время существует ряд серьёзных ошибок, которые не позволяют многим 32-битным приложениям работать с 64-битным префиксом Wine. Чтобы обойти это, вы можете создать новый 32-битный Wine префикс, используя переменную среды WINEARCH. В терминале введите:

WINEARCH=win32 WINEPREFIX=ПУТЬ_ДО_wineprefix winecfg

Используйте фактический путь к WINEPREFIX. Не используйте существующий каталог для нового wineprefix: Wine должен его создать сам.

После создания 32-битного wineprefix вам больше не нужно указывать WINEARCH в командной строке, чтобы использовать его, так как архитектура существующего wineprefix не может быть изменена. Обратите внимание, что если вы хотите использовать wineprefix не тот, который установлен по умолчанию (~/.wine), то вам нужно указать переменную WINEPREFIX при установке чего-либо (включая winetricks):

WINEPREFIX=ПУТЬ_ДО_wineprefix wine start /unix ПУТЬ_ДО_УСТАНОВЩИКА

Как запустить две программы, как если бы они были на разных компьютерах?

Пример: у вас есть серверная и клиентская программы. И одна не будет работать в присутствии другой.

Здесь вам поможет использование разных wineprefix, поскольку они по сути имитируют два компьютера с Windows.

Запустите первую программу как обычно:

wine first-program.exe

Вторую нужно запускать с другим префиксом, поэтому нам нужно изменить переменную среды WINEPREFIX:

WINEPREFIX="$HOME/.wine-second" wine second-program.exe

First-program.exe и second-program.exe могут быть двумя копиями одной и той же программы.

Как заставить Wine запускать приложение на виртуальном рабочем столе

Вы можете сделать это с помощью winecfg. Добавьте приложение на вкладке «Приложения», а затем на вкладке «Графика» включите «Эмулировать виртуальный рабочий стол».

Вы также можете использовать следующую команду:

wine explorer /desktop=name,1024x768 program.exe

Замените program.exe именем вашей программы и измените разрешение на размер виртуального рабочего стола, который вам нужен. Например:

wine explorer /desktop=HackWare.ru,1024x768 '/home/mial/.wine/drive_c/Program Files (x86)/foobar2000/foobar2000.exe'

Изменение name позволяет одновременно открывать несколько рабочих столов.

Помощники в установке программ и библиотек в Wine

PlayOnLinux

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

Скрипты PlayOnLinux активно используют WINEPREFIX и устанавливают каждое приложение свой собственный WINEPREFIX. Это означает, что работа разных программ не влияет друг на друга, и вы легко можете удалить любую из них никак не затронув другие.

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

В своей работе программа создаёт WINEPREFIX из разных версий Wine. То есть если для работы программы рекомендована определённая версия Wine, то именно эта версия и будет использоваться.

Достоинства PlayOnLinux:

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

Особенность этой программы в том, что в скриптах PlayOnLinux явно указывается версия Wine. Это касается даже беспроблемных программ, которые нормально работают на любых версиях Wine. Но поскольку версию Wine необходимо указать явно, то указывается последняя версия на момент написания скрипта. В результате при установке разных программ, PlayOnLinux загрузит разные версии Wine. Каждая версия Wine плюс префикс занимают достаточно много места.

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

Установка PlayOnLinux в Debian, Kali Linux, Linux Mint Ubuntu и их производные:

sudo apt install playonlinux

Установка PlayOnLinux в Arch Linux, BlackArch и их производные:

sudo pacman -S playonlinux

Чтобы установить программу в PlayOnLinux, нажмите кнопку «Установка».

Выберите категорию и программу или игру в ней, которую вы хотите установить и опять нажмите кнопку «Установка» (внизу окна).

Далее будет показано окно с важными рекомендациями:

  • если программа даёт возможность выбрать место установки, всегда устанавливайте на диск C: и вообще не меняйте место установки по умолчанию
  • если установщик спрашивает «Запустить программу сейчас?», то всегда выбирайте «Нет»
  • если программа спрашивает «Перезагрузить компьютер сейчас?» вы можете выбрать «Да», но это не означает, что вам нужно перезагружать хостовую систему (если проще — можете ответить как угодно и ничего не делайте)

Информация о выбранной программе для установки.

И вот здесь то, о чём говорилось выше — установочный файл 7-Zip размером меньше 2 мегабайт и сама программа после установки занимает примерно столько же. Но для неё качается указанная в скрипте версия Wine, которая занимает почти 300 мегабайт, плюс в развёрнутом виде префикс также будет занимать место.

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

Для некоторых программ предлагается установить с диска или из Steam’а.

Запускается обычный установщик выбранной программы.

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

Для каждой установленной программы вы можете сделать тонкую настройку. Например, выбрать другую версию Wine.

Вы можете выполнить стандартные действия для данного префикса в графическом интерфейсе PlayOnLinux.

При необходимости, вы можете установить дополнительные компоненты — всякие среды выполнения, недостающие DLL, программы Windows и очень многое другое.

Вы можете изменить настройки экрана — насколько я понимаю, в Wine напрямую это можно сделать только редактированием реестра Windows.

На последней вкладке настроек вы можете выбрать произвольный .exe файл для выполнения на данном виртуальном диске (префиксе).

Winetricks

Winetricks — это простой способ решения различных задач в Wine связанных с установкой программ и игр и настройкой Wine.

Winetricks — это вспомогательный скрипт для загрузки и установки различных распространяемых библиотек времени выполнения, необходимых для запуска некоторых программ в Wine. Они могут включать замену компонентов Wine с использованием библиотек с закрытым исходным кодом.

У Winetricks есть графическое меню поддерживаемых игр/приложений, для которых он может выполнять последовательные действия. Он также позволяет устанавливать недостающие библиотеки DLL и настраивать различные параметры Wine. Вы можете выбрать префикс, в который вы хотите установить приложение или изменить настройку.

Установка Winetricks в Debian, Kali Linux, Linux Mint Ubuntu и их производные:

sudo apt install winetricks

Установка Winetricks в Arch Linux, BlackArch и их производные:

sudo pacman -S winetricks

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

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

У программы графический интерфейс. В открывшемся окне вы можете сразу выполнить действия в префиксе по умолчанию или создать новый префикс:

Пример действий после выбора префикса:

Создание нового префикса — достаточно выбрать его битность и название.

Новый префикс добавлен в список и теперь вы можете выбрать его для установки программ и выполнения других действий:

Пример настроек, которые вы можете поменять для выбранного префикса:

Пример программ для установки:

В Winetricks выполняемые по установке действия называются verbs, то есть буквально «глаголы». Каждый глагол устанавливает приложение или изменяет настройки. В дальнейшем в качестве verb будут использоваться слова «действие» и «глагол».

Использование:

./winetricks [ОПЦИИ] [КОМАНДА|ДЕЙСТВИЕ|ПУТЬ-ДО-ГЛАГОЛА] ...

Опции:

    --country=CC      Установить код страны на CC и не определять ваш IP адрес
-f, --force           Не проверять, были ли уже установлены пакеты
    --gui             Показывать диагностику в графическом интерфейсе даже при управлении из командной строки
    --isolate         Установить каждое приложение или игру в отдельный префикс (WINEPREFIX)
    --self-update     Обновить это приложение до последней версии
    --update-rollback Откатить последнее самообновление
-k, --keep_isos       Кэшировать образы ISO (позволяет последующую установку без диска)
    --no-clean        Не удалять временные папки (полезно для отладки)
-q, --unattended      Не задавать никаких вопросов, просто установить автоматически
-r, --ddrescue        Повторите попытку при кешировании поцарапанных дисков
-t  --torify          Запускать загрузки с выходом в сеть через Tor, если возможно
    --verify          Запустить (автоматизированные) тесты GUI для глаголов, если доступно
-v, --verbose         Отображать все команды по мере их выполнения
-h, --help            Показать справку и выйти
-V, --version         Показать версию и выйти

Команды:

list                  вывести список категорий
list-all              вывести все категории и их глаголы
apps list             вывести все глаголы категории 'applications' (приложения)
benchmarks list       вывести все глаголы категории 'benchmarks' (измерители производительности)
dlls list             вывести все глаголы категории 'dlls' (файлы библиотек dll)
fonts list            вывести все глаголы категории 'fonts' (шрифты)
games list            вывести все глаголы категории 'games' (игры)
settings list         вывести все глаголы категории 'settings' (настройки)
list-cached           вывести список кэшированных и готовых к установке глаголов
list-download         вывести глаголы, которые загружаются автоматически
list-manual-download  вывести глаголы, для загрузки которых нужна помощью пользователя
list-installed        показать уже установленные глаголы
arch=32|64            создать wineprefix с 32 или 64 битами, эта опция должна быть
                      передана перед prefix=foobar и не будет работать в случае
                      префикса wineprefix по умолчанию.
prefix=foobar         выбрать WINEPREFIX=/home/$USER/.local/share/wineprefixes/foobar
annihilate            Удалить ВСЕ ДАННЫЕ И ПРИЛОЖЕНИЯ ВНУТРИ ЭТОГО ПРЕФИКСА

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

winetricks corefonts vcrun6

установит пакеты corefonts и vcrun6.

Как и все команды Wine, winetricks знает о переменной среды WINEPREFIX. Это полезно для использования winetricks с разными расположениями префиксов Wine. Например,

env WINEPREFIX=~/.winetest sh winetricks mfc40

устанавливает пакет mfc40 в папку ~/.winetest.

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

env WINE=~/wine-git/wine winetricks mfc40

устанавливает пакет mfc40 с помощью Wine в каталог ~/wine-git.

Что лучше, PlayOnLinux или Winetricks?

Некоторые действия у PlayOnLinux или Winetricks пересекаются, то есть одну и ту же программу можно установить как через PlayOnLinux, так и через Winetricks, что выбрать?

Во-первых, если это простая для установки в Linux программа, не требующая зависимостей, например, foobar2000 или 7-Zip, то не используйте ни одну из этих программ — установите её напрямую, поскольку PlayOnLinux создаст новый виртуальный диск и загрузит новую версию Wine (много места), а Winetricks почти наверняка скачает старую версию (хотя скрипт обновляется почти каждый день, многие ссылки в нём успевают устаревать).

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

Использование реестра и Regedit

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

Структура реестра

Реестр Windows представляет собой сложную древовидную структуру, и даже большинство программистов Windows не полностью осведомлены о том, как устроен реестр с его различными «кустами» и многочисленными связями между ними; полное описание выходит за рамки этого документа. Но вот основные ключи реестра, о которых вам, возможно, нужно знать сейчас:

  • HKEY_LOCAL_MACHINE

Этот основной корневой ключ (в win9x он хранится в скрытой файловой системе system.dat) содержит всё, что относится к текущей установке Windows. Часто это сокращённо называют HKLM.

  • HKEY_USERS

Этот основной корневой ключ (в Win9x он хранится в скрытом файле user.dat) содержит данные конфигурации для каждого пользователя установки.

  • HKEY_CLASSES_ROOT

Это ссылка на HKEY_LOCAL_MACHINE\Software\Classes. Он содержит данные, описывающие такие вещи, как ассоциации файлов, обработчики документов OLE и классы COM.

  • HKEY_CURRENT_USER

Это ссылка на HKEY_USERS\ваше_имя, то есть вашу личную конфигурацию.

Файлы реестра

Теперь вы, вероятно, задаётесь вопросом, как это переводится в структуру Wine. Описанный выше макет реестра на самом деле находится в трёх разных файлах в каталоге ~/.wine каждого пользователя:

  • system.reg

Этот файл содержит HKEY_LOCAL_MACHINE.

  • user.reg

Этот файл содержит HKEY_CURRENT_USER.

  • userdef.reg

Этот файл содержит HKEY_USERS\.Default (т.е. пользовательские настройки по умолчанию).

Эти файлы автоматически создаются при первом использовании Wine. Набор глобальных настроек хранится в файле wine.inf и обрабатывается программой rundll32.exe. При первом запуске Wine файл wine.inf обрабатывается для заполнения исходного реестра. Реестр также обновляется автоматически при изменении wine.inf, например, при обновлении до более новой версии Wine.

Не рекомендуется редактировать эти файлы для изменения реестра, поскольку они управляются внутри Wine. Используйте regedit.exe, reg.exe или любую программу, которая использует стандартные функции реестра.

Использование Regedit

Лёгкий способ получить доступ к реестру и изменить его с помощью инструмента regedit.

regedit

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

Чтобы перемещаться по реестру, нажимайте пункты слева, чтобы перейти к подпунктам. Чтобы удалить ключ, щёлкните его и выберите «Удалить» в меню «Правка». Чтобы добавить ключ или значение, найдите, куда вы хотите поместить его, и выберите «Создать» в меню «Правка». Точно так же вы изменяете существующий ключ, выделяя его на правой панели окна и выбирая «Изменить» в меню «Правка». Другой способ выполнить те же действия — щёлкнуть правой кнопкой мыши ключ или значение.

Особый интерес для пользователей Wine представляют настройки, хранящиеся в HKEY_CURRENT_USER\Software\Wine. Большинство настроек, которые вы изменяете в winecfg, записываются в эту область реестра.

Полный список ключей реестра

В вики вы найдёте актуальный список полезных ключей и значений реестра.


Рекомендуется Вам:

7 комментариев to Полное руководство по Wine: от установки до примеров использования

  1. reisub:

    Классная статья! 

    Почему обходите стороной q4wine? Очень удобное решение когда лень лезть в терминал)

    • Alexey:

      Приветствую! Не знал про q4wine. Разберусь с этой программой и дополню статью.

  2. Андрей:

    iTunes 12.6.5 для работы требует подключение к интернету, как настроить?

  3. Vlad:

    Согласен, статья классная. Большой задел про WINE.

    Как начинающему мне очень полезно.

  4. Антон:

    Как в wine в explorer настроить Избранное (Favorites), а ещё лучше добавить папки "Загрузки", "Видео", "Музыка" рядом с папкой "Документы" в дерево папок explorer?

  5. отлично . многое узнал . возможно из терминала linux запускать одну и туже программу.exe сразными настройками ( windows 7 ) || ( windows 10 ) ?

Добавить комментарий для Alexey Отменить ответ

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