запуск приложений wine через терминал
Запуск приложений wine через терминал
Стандартным способом деинсталляции программ является штатный деинсталлятор самой программы, обычно зарегистрированный в аплете панели управления «Add/Remove Programs». Чтобы вызвать эквивалент деинсталлятора от самой Wine, запустите в терминале программу uninstaller (она расположена в папке programs/uninstaller/ в директории с исходниками Wine): Некоторые программы, например Internet Explorer и QuickTime, устанавливают объединенные апплеты панели управления. Вы можете вызвать панель управления Wine, запустив в терминале: которая откроет окно панели управления с установленными аплетами, как в Windows.
Если приложение не устанавливает себя в меню или значок на рабочем столе, вам придется запускать его из командной строки. Если вы помните, куда вы установили программу, то примерно такая команда: скорее всего сделает свое дело. Путь (path) не реагирует на регистр букв, но не забудьте про двойные кавычки. Некоторые программы не всегда используют достаточно очевидные способы именования своих программ и EXE файлов, так что можно заглянуть в директорию Program Files и посмотреть, что там записано.
4.2. Как запускать Wine
Первым аргументом должно быть имя файла, который вы хотите запустить с помощью Wine. Если исполняемый файл находится в переменной окружения Path, можно просто напечатать его имя. Если же файл не входит в Path, то нужно указать полный путь к исполняемому файлу (в формате Windows, а не Юникс!). Например, дана такая переменная окружения Path: Вы можете запустить файл c:\windows\system\foo.exe при помощи: Однако файл c:\myapps\foo.exe придется запускать командой: (обратите внимание на двойной обратный слэш!)
О подробностях запуска исполняемых файлов в текстовом режиме (CUI) смотрите раздел ниже.
4.3. Графический интерфейс Wine, подобный интерфейсу «Проводника» Windows
4.4 Опции командной строки Wine
4.5. Переменные окружения
4.5.1. WINEDEBUG=[channels]
Каждый канал отладки, будучи активирован, начинает выводить сообщения протоколирования на консоль, в которой работает Wine. Вы можете перенаправить эти сообщения в файлы и исследовать их в свободное время. Но будьте осторожны! Некоторые из каналов отладки могут записывать в протокол немыслимые объемы сообщений. Среди наиболее плодовитых вредителей выделяются relay, который записывает сообщение в протокол при каждом вызове win32-функции; win, который отслеживает прохождение Windows сообщений, и, конечно, all, который является синонимом каждого отдельного существующего канала отладки. Для сложного приложения объем ваших отладочных логов легко может превысить 1 Мб и больше. Сыщик relay часто генерирует более 10 Мб логов, в зависимости от продолжительности работы программы. (Чтобы изменить содержание отчетов relay, вам придется редактировать ключ реестра RelayExclude). Ведение всех этих логов тормозит работу Wine, так что пользуйтесь WINEDEBUG только тогда, когда действительно хотите получить лог сообщения.
Внутри каждого отладочного канала, вы можете задать класс сообщений, чтобы отфильтровывать степень серьезности ошибок. Четыре класса сообщений суть: trace (след), fixme (исправить), warn (предупредить), err (ошибка).
Для включения отладочного канала, используйте форму class+channel. Для отключения канала форму class-channel. Чтобы перечислить несколько каналов в одной опции WINEDEBUG, разделяйте каналы запятыми. Например, чтобы получать сообщения класса warn в канале отладки heap, вы можете запустить Wine такой командой: Если вы не укажете класс сообщения, Wine будет выдавать сообщения всех 4 классов для данного канала: Если вы захотите получать логи со всех каналов, кроме канала relay, вы можете дать примерно такую команду: Вот список всех отладочных каналов и классов в Wine. В следующих версиях каналы будут добавлены (или убавлены).
Таблица 1. Отладочные каналы
accel | adpcm | advapi | animate | aspi |
atom | avicap | avifile | bidi | bitblt |
bitmap | cabinet | capi | caret | cdrom |
cfgmgr32 | class | clipboard | clipping | combo |
comboex | comm | commctrl | commdlg | computername |
console | crtdll | crypt | curses | cursor |
d3d | d3d_shader | d3d_surface | datetime | dc |
ddeml | ddraw | ddraw_fps | ddraw_geom | ddraw_tex |
debugstr | devenum | dialog | dinput | dll |
dma | dmband | dmcompos | dmfile | dmfiledat |
dmime | dmloader | dmscript | dmstyle | dmsynth |
dmusic | dosfs | dosmem | dplay | dplayx |
dpnhpast | driver | dsound | dsound3d | edit |
enhmetafile | environ | event | eventlog | exec |
file | fixup | font | fps | g711 |
gdi | global | glu | graphics | header |
heap | hook | hotkey | icmp | icon |
imagehlp | imagelist | imm | int | int21 |
int31 | io | ipaddress | iphlpapi | jack |
joystick | key | keyboard | listbox | listview |
loaddll | local | mapi | mci | mcianim |
mciavi | mcicda | mcimidi | mciwave | mdi |
menu | menubuilder | message | metafile | midi |
mmaux | mmio | mmsys | mmtime | module |
monthcal | mpeg3 | mpr | msacm | msdmo |
msg | mshtml | msi | msimg32 | msisys |
msrle32 | msvcrt | msvideo | mswsock | nativefont |
netapi32 | netbios | nls | nonclient | ntdll |
odbc | ole | oledlg | olerelay | opengl |
pager | palette | pidl | powermgnt | |
process | profile | progress | propsheet | psapi |
psdrv | qcap | quartz | ras | rebar |
reg | region | relay | resource | richedit |
rundll32 | sblaster | scroll | seh | selector |
server | setupapi | shdocvw | shell | shlctrl |
snmpapi | snoop | sound | static | statusbar |
storage | stress | string | syscolor | system |
tab | tape | tapi | task | text |
thread | thunk | tid | timer | toolbar |
toolhelp | tooltips | trackbar | treeview | ttydrv |
twain | typelib | uninstaller | updown | urlmon |
uxtheme | ver | virtual | vxd | wave |
wc_font | win | win32 | wineboot | winecfg |
wineconsole | wine_d3d | winevdm | wing | winhelp |
wininet | winmm | winsock | winspool | wintab |
wintab32 | wnet | x11drv | x11settings | xdnd |
xrandr | xrender | xvidmode |
О деталях работы с отладочными каналами, читайте The Wine Developer’s Guide.
4.5.2. WINEDLLOVERRIDES=[DLL Overrides]
Для примера: вы хотите, чтобы Wine использовал «родные» ole32.dll, oleaut32.dll и rpcrt4. Тогда запускайте Wine такой командой: В разделе замена DLL вы найдете дополнительную информацию по этому вопросу.
4.5.3. Настройка OSS звуковых драйверов
4.6. Опции командной строки wineserver’а
Обычно wineserver прекращает работу почти мгновенно после окончания последнего процесса Wine, использовавшего данный wineserver. Однако, в силу того, что wineserver загружает множество вещей при старте (например, данные целого реестра Windows), его последующий старт может быть весьма долгим, так что полезно удержать его от закрытия после окончания сессии Wine, сделав его постоянным.
4.7. Настройка переменных окружения Windows/DOS
Это обеспечит доступ вашей Windows программы к переменной окружения MYENVIRONMENTVAR, когда вы запустите программу при помощи Wine. Если вы хотите установить MYENVIRONMENTVAR на постоянной основе, вы можете поместить настройку в файл /etc/profile, или также, в случае bash, в файл
Имейте однако, в виду, из этого правила есть исключения: Если вы захотите таким способом изменить переменные окружения PATH, SYSTEM или TEMP, вы, ни в коем случае не должны действовать подобным образом, потому что измените настройку переменных окружения Юникс. Вместо этого вам следует установить их в реестр. Чтобы сделать это запустите Wine regedit, и найдите ключ
Теперь вы можете создавать или изменять значения переменных как вам нужно
Эта запись определит нахождение системных файлов Windows. Системная директория Windows должна располагаться ниже директории, с установками Windows. Если у вас путь (path) к Windows такой: /usr/local/wine_c/windows, то системная директория будет: /usr/local/wine_c/windows/system. Это должно быть прописано без закрывающего слэша, и вы должны иметь право записи в эту директорию.
Это директория, где будут сохраняться ваши временные файлы, /usr/local/wine_c/temp из нашего предыдущего примера. И снова, никаких закрывающих слэшей и право на запись!!
Эта запись ведет себя как настройки PATH в Юникс системах. Если запустить пасьянс в Wine следующим образом:
то он запустится, если файл sol.exe находится в одной из директорий, включенных в Path (конечно, если файл sol.exe находится в рабочей директории, он тоже запустится). Убедитесь, что в Path всегда прописаны ваши Windows и системная директории. Для этого нужно иметь запись «c:\\windows;c:\\windows\\system».
4.8 Программы с текстовым выводом (CUI: консольный интерфейс пользователя)
Решая столь широкий диапазон свойств, и их современное применение в мире Юникс, Wine действует тремя различными способами для запуска консольных программ (aka CUI исполняемые файлы):
Таблица 2. Основные различия в консолях
4.8.1 Настройка CUI исполняемых файлов
1. Сохранить новые настройки только на время данного сеанса (когда вы в следующий раз запустите это приложение, вы не увидите своих изменений).
2. Использовать новые настройки в данном сеансе и сохранить их на будущее, так что в следующий раз вы снова сможете ими воспользоваться.
Вот список возможных настроек и их значение:
Таблица 3.Опции настройки Wineconsole
Размер курсора: Определяет размер курсора. Возможны 3 размера: маленький (33% от высоты символа), средний (66% от высоты символа), большой (100%). |
Всплывающее меню: Как уже говорилось, это всплывающее меню настройки wineconsole запускается правым щелчком мыши в окне консоли. Однако, это может стать помехой, если приложение, которое вы запустили в wineconsole, использует правый щелчок мыши в своей работе. Нажатием клавиш Ctrl или Shift, вы вводите дополнительный контроль над правым щелчком мыши, открывающим меню. Например, если вы производите правый щелчок мышью без нажатия клавиши Shift, то событие направляется в приложение; а если вы делаете правый щелчок при нажатой клавише Shift, то открывается меню.
История: Позволяет установить количество команд, запоминаемых консолью. Кроме того, позволяет определить порядок сохранения повторяющихся одинаковых команд (возможно, перемежаемых другими). Если хотите сохранить их все, то отключите переключатель, если хотите сохранить только последнюю, то включите переключатель.
Police: Позволяет выбрать шрифт для консоли (файл шрифта, размер, цвета шрифта и фона).
Буфер экрана (Screenbuffer) и размер окна: Консоль, что мы видим, состоит из двух различных частей. С одной стороны, это буфер экрана, который содержит все, что программа выводит на экран. С другой стороны, это окно, которое показывает заданную часть буфера. Заметьте, что окно всегда меньше (или равно) буфера экрана. Если задать размер окна, сильно меньший, чем размер буфера, то появятся полосы прокрутки, которые позволят просматривать содержимое всего экранного буфера.
Close on exit: Если переключатель нажат, то wineconsole закроется, как только приложение завершит работу. В противном случае, консоль останется открытой, пока пользователь не закроет ее вручную, Это позволяет увидеть информацию, выводимую после завершения программы.
Wine (Русский)
Wine — слой совместимости, позволяющий запускать приложения Microsoft Windows в Unix-подобных операционных системах. Программы, запущенные в Wine, работают так же, как и «родные» — без потерь производительности и увеличения потребления памяти, характерных для эмуляторов.
Contents
Установка
Чтобы установить Wine, подключите репозиторий multilib и установите пакет wine (development-версия) или wine-staging (testing). Wine Staging — пропатченная версия Wine с исправлениями багов и некоторыми возможностями, которые ещё не были добавлены в stable- и development-версии. См. также #Графические драйвера и #Звук.
Сторонние приложения
Перечисленные ниже приложения являются отдельными проектами, с собственными сообществами и веб-сайтами, и не поддерживаются основным сообществом Wine. Подробности можно найти в Wine Wiki.
Настройка
Настройка Wine обычно выполняется следующими инструментами:
WINEPREFIX
По умолчанию Wine хранит файлы настроек и установленные программы Windows в каталоге
С помощью переменной окружения WINEPREFIX можно задать произвольный каталог для префикса. Это удобно, если вы хотите использовать разные настройки для разных Windows-программ. Когда программа впервые запускается с новым префиксом, Wine автоматически создает каталог с чистым диском C и реестром.
Чтобы создать нужный префикс без запуска Windows-программы или графического инструмента, выполните:
WINEARCH
Также WINEARCH можно совместить с другими программами Wine вроде winetricks (Steam взят для примера):
Узнать архитектуру существующего префикса можно в файле реестра. Следующая команда считывает системный реестр префикса
/.wine и возвращает строку #arch=win32 или #arch=win64 в зависимости от типа архитектуры:
Графические драйвера
Вам придётся установить 32-битную версию вашего графического драйвера. Выберите нужный пакет из столбца OpenGL (multilib) в таблице Xorg#Установка драйвера.
Верным признаком того, что ваш драйвер не подходит или неправильно настроен, будет следующее сообщение Wine в окне терминала:
При запуске приложений в Wine могут возникнуть некоторые проблемы со звуком. Убедитесь, что в winecfg выбрано только одно звуковое устройство.
Установите необходимые вашему аудиодрайверу пакеты:
Если winecfg по-прежнему не может обнаружить звуковой драйвер (Selected driver: (none)), настройте его через реестр. Например, если не работает микрофон в 32-битном приложении Windows на 64-битной базовой установке wine-1.9.7, получить полный доступ к звуковому аппаратному обеспечению можно следующим образом: откройте regedit, найдите HKEY_CURRENT_USER → Software → Wine → Drivers, добавьте строку с названием Audio и задайте ей значение alsa. Возможно, также поможет пересоздание префикса.
Поддержка MIDI
MIDI — довольно популярная музыкальная система видеоигр 90-х. Если вы пытаетесь запустить старую игру, то «из коробки» звук скорее всего работать не будет.
В Wine имеется отличная поддержка MIDI. Тем не менее, в первую очередь она должна работать на вашей хостовой системе, как объяснено в статье MIDI. Кроме того, убедитесь, что Wine использует правильный MIDI-разъём.
Прочие зависимости
Некоторым приложениям могут потребоваться дополнительные пакеты для различных целей:
Шрифты
Если в приложении Wine шрифты отображаются неразборчиво, проблема может быть в том, что они просто не установлены. Вы можете настроить Wine, чтобы он использовал системные шрифты:
Wine использует FreeType для построения шрифтов, и стандартные настройки FreeType изменились несколько релизов назад. Попробуйте использовать следующее окружение для Wine-программ:
Если шрифты выглядат немного смазанными, импортируйте следующий текстовый файл в реестр Wine с помощью regedit:
Для мониторов с высоким разрешением значения dpi можно задать в winecfg.
Сглаживаение шрифтов
Хороший способ улучшить рендеринг шрифтов в Wine — включить сглаживание ClearType. Следующий скрипт включит режим «Subpixel smoothing (ClearType) RGB»:
Иконки рабочего стола
Пункты меню для утилит Wine
По умолчанию, при установке Wine пункты меню и иконки для относящихся к Wine программ (например, winecfg, winebrowser и т.д.) не создаются. Чтобы это исправить, установите мета-пакет wine-installer AUR или wine-installer-git AUR (у последнего есть дополнительные зависимости) или следуйте инструкциям ниже.
Во-первых, установите любую программу Windows, чтобы Wine создал меню. Затем создайте файлы со следующим содержанием в каталоге
После этого создайте следующий файл в каталоге
Если с этими настройками иконки выглядят уродливо (или не появились вовсе), то их нет среди доступных. Необходимо заменить настройки явным указанием расположения желаемых иконок. Того же можно добиться правым кликом по иконке и изменением настроек. Большой набор иконок для ярлыков можно найти в GNOME-colors.
Удаление пунктов меню
Созданные Wine пункты меню хранятся в каталоге
Кроме того, чтобы удалить нежелательные расширения Wine, выполните следующие команды (источник — сайт Wine):
Внешний вид
Оформление в стиле XP можно загрузить отсюда. Руководство по установке можно найти здесь. После установки выберите тему оформления в winecfg.
Пользователи Wine Staging могут вместо этого включить опцию Enable GTK3 Theming в разделе Staging winecfg. Будет выбрана текущая GTK-тема.
Печать
Wine также могут потребоваться специальные разрешения (capability) на доступ к сети по протоколу ICMP (пинги) (см. WineHQ FAQ):
Если после этого возникают проблемы (например, при обработке исключений или привилегированных команд), для удаления capability выполните:
Использование
Общую информацию об использовании Wine можно найти на странице Wine User’s Guide.
Запуск конкретных приложений Windows в Wine описан на странице Wine Application Database (AppDB).
Wayland
В настоящее время Wine не поддерживает Wayland напрямую, но вы можете использовать XWayland.
Некоторые попытки реализовать поддержку Wayland:
Советы и рекомендации
Wineconsole
Часто появляется необходимость запустить .exe-файл, чтобы пропатчить файлы игры, например, добавить поддержку широкоформатного экрана в старую игру. Запуск .exe-файла в Wine обычным способом ни к чему не приведёт. В этом случае откройте терминал и выполните:
Затем перейдите в каталог с .exe-файлом и запустите его.
Winetricks
Winetricks — скрипт, помогающий установить базовые зависимости, необходимые программам Windows. Устанавливаются DirectX 9.x, MSXML (для Microsoft Office 2007 и Internet Explorer), библиотеки Visual Runtime и многое другое.
Производительность
Имейте в виду, что для некоторых приложений CSMT может привести к обратному эффекту — к снижению производительности. В этом случае отключите его вручную, создав/изменив значение в реестре на 0x00 (отключено).
Режим OpenGL в играх
Разумеется, перед запуском приложения в этом режиме необходимо тщательно изучить его документацию и информацию из базы данных Wine AppDB.
DXVK — новая многообещающая реализация DirectX версий 9, 10 и 11 поверх Vulkan. Значительно повышает производительность и в некоторых случаях обеспечивает даже лучшую совместимость. Battlefield 1, например, работает только под DXVK. С другой стороны, на данный момент DXVK поддерживает не все игры Wine.
Gallium Nine
Для открытых драйверов на основе Gallium (в основном карты AMD) существует проект трекера состояний Gallium Direct3D, который ставит целью добиться производительноси, сравнимой с нативными показателями DirectX 9. В большинстве случаев выдаёт вдвое большую производительность, чем стандартный Wine, и меньшее количество визуальных помех. Потреблене времени центрального процессора значительно ниже по сравнению с CSMT.
Удаление ненужных файловых ассоциаций
Ассоциации Wine хранятся в каталоге
После этого очистите кэш:
В качестве альтернативы можно удалить все файлы, относящиеся к Wine:
После этого тоже обновите кэш, как показано выше.
Имейте в виду, что Wine может создать новые ассоциации и даже пересоздать удалённые, если того потребует какое-нибудь приложение.
Запрет на создание файловых ассоциаций
Если вы хотите запретить Wine создавать файловые ассоциации, запустите winecfg и уберите галочку «Manage File Associations» на вкладке Desktop Integration. Подробнее см. Wine FAQ.
Чтобы сделать то же самое, но с помощью реестра, добавьте строку Enable со значением N в
Предотвратить перезапись изменённых файлов при обновлении пакета можно создав хук pacman, который будет вносить изменения автоматически:
Неявный запуск бинарников Windows
Два монитора с разными разрешениями
Кроме того, установка пакета lib32-libxinerama поможет решить некоторые другие проблемы работы с двумя мониторами в Wine: ненажимаемые иконки и пункты меню, плохая отрисовка интерфейса приложения, зависание курсора мыши и т.п.
Прожиг оптического носителя
Монтирование образов оптических дисков
Приложения могут проверять наличие оптического диска в дисководе. Иногда это просто проверка присутствия данных, и в этом случае будет достаточно с помощью winecfg настроить определённый путь в файловой системе выступать в качестве привода CD-ROM. Другие приложения могут проверять название носителя и/или серийный номер, и в этом случае потребуется смонтировать соответствующий образ.
Некоторые утилиты для работы с виртуальными дисками, в том числе основанные на fuse, не умеют работать с такими метаданными — например, Acetoneiso. CDEmu, наоборот, работает вполне корректно.
Показ FPS в играх
Отдельная учётная запись для запуска Wine
Поскольку приложения Windows имеют доступ к вашей домашней директории, имеет смысл создать отдельную учётную запись для работы только с Wine.
Первым делом создайте саму учётную запись:
Затем переключитесь в другую виртуальную консоль и запустите оконный менеджер или окружение рабочего стола (или прото читайте дальше).
Чтобы теперь запускать Wine от новой учётной записи, необходимо добавить её в список разрешений X server:
Наконец, можно запускать Wine, передав ему с помощью env необходимые переменные окружения:
Процесс запуска приложений Windows в Wine можно автоматизировать с помощью скрипта:
Теперь приложение Wine запустится следующей командой:
Рекомендуется также запустить winecfg от пользователя Wine, и в окне настроек (раздел «Desktop Integration») убрать привязки ко всем каталогам за пределами домашнего. Так Wine будет иметь доступ только к нему и ни к чему более.
Правда, нужно иметь в виду, что при таком способе работы в приложениях, использующих PulseAudio, может перестать работать звук. В статье PulseAudio/Примеры#Одновременное использование PulseAudio несколькими пользователями описано, как дать пользователю Wine доступ к демону PulseAudio основного аккаунта.
Каталог Temp в tmpfs
По умолчанию Wine записывает временные файлы на физический носитель, но можно использовать для этого файловую систему tmpfs. Удалите текущий каталог для временных файлов и создайте символическую ссылку на новый:
Запрет на установку Mono/Gecko
Vulkan
В Wine 3.3 была добавлена поддержка Vulkan. Базовый ICD-загрузчик Vulkan в большинстве приложений работает вполне нормально, но в нём отсутствуют некоторые продвинутые возможности вроде Vulkan layers. Чтобы получить к ним доступ, установите официальный Vulkan SDK (см. шаг 2-4 на GitHub-странице автора патча).
Удаление файловых привязок
По соображениям безопасности полезно удалить предустановленные привязки Wine, чтобы приложения Windows не могли быть запущены напрямую из файлового менеджера или браузера (Firefox предлагает открыть EXE-файлы сразу в Wine!).
Чтобы это сделать, добавьте следующие строки в раздел [options] файла /etc/pacman.conf :
Решение проблем
Общие советы по решению возможных проблем можно найти на страницах Wine User’s Guide и Wine FAQ (прежде всего в разделе Решение проблем).
Советы для конкретных приложений можно найти в Wine AppDB.
Проблемы с XWayland
Если вы используете Wine в XWayland, опция «Эмуляция виртуального рабочего стола» на вкладке Graphics в winecfg позволяет решить следующие проблемы: