Wine включение или отключение компонентов windows

Удивлен, что на Хабре все еще нет описания программы winetricks и плюсов, которые она может дать. Многие сталкивались с ситуацией, когда Windows-программе требу...

Удивлен, что на Хабре все еще нет описания программы winetricks и плюсов, которые она может дать.

Многие сталкивались с ситуацией, когда Windows-программе требуется какой-то компонент для запуска. Например, .NET, Mono или DirectX.

Устанавливать их руками — долго и муторно — нужно искать дистрибутивы, скачивать, указывать параметры… Особенно в ситуации, когда установка wine выполняется впервые и ставить нужно много.

Сообщество Wine решило эту проблему.

Для облегчения этой задачи появилась отличная программа winetricks. В последней версии она имеет как консольный, так и графический интерфейс. Сам интерфейс предельно прост — выбор пакета и кнопка начала установки.

Установка.

Для корректной работы программы нам потребуется собственно wine, cabextract и сама winetricks.

Первое и второе вы можете установить через пакеты дистрибутива, а вот сам WT придется ставить руками.

Самую свежую версию winetricks можно взять на:

winezeug.googlecode.com/svn/trunk/winetricks (Спасибо TiGR за ссылку). Ниже приведена устаревшая стабильная версия.

$ su
Password:
# wget -c www.kegel.com/wine/winetricks -O winetricks
# mv winetricks /usr/sbin/
# chmod a+rwx /usr/sbin/winetricks
# exit

Запускать программу надо именно под тем пользователем, под которым у вас работает wine, иначе софт установится не туда, куда нужно. Права root НЕ НУЖНЫ.

Теперь запустим.

Для открытия GUI с выбором компонента:

$ winetricks

Для полуавтоматической установки (название и описания компонентов выводятся по ключу —help):

$ winetricks "components names"

На данный момент winetricks знает около сотни различных компонентов и приложений, включая Mono, FireFox, .NET Framework, IE и DirectX.

April 6 2020, 16:21

Categories:

  • IT
  • Напитки
  • Cancel

Установка Wine 5

Для LUbuntu 18.04 родная версия  3. Но корректная установка .NET Framework возможна начиная с версии Wine 4.21 — в более ранних версиях существует баг с требованием установить .NET Framework 2.0a. Предлагали пойти более простым путём — правкой реестра, но оказалось, что реестр в Wine не содержит пункта Разрешения.

Для начала подключите репозиторий для скачивания самой новой версии по этой инструкции. В лучших традициях Ubuntu в конце выйдет ошибка:
Следующие пакеты имеют неудовлетворённые зависимости:
winehq-stable : Зависит: wine-stable
Она означает, что не установлен пакет libfaudio0:i386

Для установки пакета libfaudio0:i386 подключите ещё один репозиторий и обновите систему. При добавлении репозитория снова произойдет ошибка (не обнаружится ключ Release.key), но на этот раз её можно проигнорировать.

После всего этого снова запустите установку Wine
sudo apt install —install-recommends winehq-stable

Проверить версию установленной Wine можно командой:
wine —version

Настройка Wine

Для установки .NET Framework необходимо переключить Wine в 32-битный режим командой: WINEARCH=win32 WINEPREFIX=~/.wine32 winecfg Будет предложено доустановить пакеты wine-mono и gescko. От wine-mono отказываемся, gescko устанавливаем.Также необходимо установить версию Windows: Windows XP. Для этого нужно вызвать окно конфигурации Wine командой: WINEPREFIX=~/.wine32 winecfg

Версию ОС стоит проверить и в случае ошибки:
«Для установки и настройки Microsoft .NET Framework необходимо использовать параметр «Включение или отключение компонентов Windows» в панели управления».

Установка .NET Framework 3.5 SP1

Скачайте дистрибутив .NET Framework 3.5 SP1 на диск.Сделайте папку с дистрибутивом текущей.Запустите установку командой: WINEPREFIX=~/.wine32 wine start dotnetfx35.exe

У меня установка прошла без ошибок.

Завершающий штрих — ручная перестройка триггера Global Assembly Cache (GAC)
WINEPREFIX=~/.wine32 wine «c:\windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe» update

Работа других программ, основанных на .NET Framework, при этом не гарантирована. У меня не запустилась.

Общие вопросы

  • wineserver — служба, выполняющая роль ядра ОС Windows. Для каждого префикса запускается своя служба, что позволяет одновременно выполнять несколько программ из разных префиксов. Рекомендуется использовать данную команду с ключом -k, если префикс перестал функционировать;
  • wineboot —  служба, выполняющая инициализацию, запуск и перезагрузку префикса. Так же она выполняет симуляцию завершения работы и перезапуска для программ, запущенных в префиксе;
  • regedit — аналог редактора реестра Windows. Настройки, которыми можно управлять через winecfg и winetricks, сохраняются в ветку реестра HKEY_CURRENT_USERSoftwareWine;
  • winecfgпрограмма для настройки префикса. Наиболее часто используемые вкладки:
    • Приложения — выбор того, под какую версию Windows будет изменяться префикс. На данный момент по умолчанию выбрана Windows 7;
    • Диски — подключение виртуальных и физических разделов, DVD-приводов, сетевых дисков. При создании префикса по умолчанию подключено два виртуальных диска — C: и Z:. Диск C: является системным каталогом префикса, а диск Z: ведет в корень файловой системы Linux.

Как может быть установлен Wine в Astra Linux

Wine в Astra Linux может быть установлен:

  • при использовании Astra Linux Special Edition 1.7 — из расширенного репозитория (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования и Интернет-репозитории Astra Linux Special Edition x.7). 

    Wine, доступный в расширенном репозитории Astra Linux Special Edition 1.7, поддерживает только 64-разрядную архитектуру.

  • из сторонних репозиториев (например, репозиториев Debian — см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов);
  • из загруженных файлов пакетов .deb:
    • для запуска Internet Explorer в Astra Linux Special Edition 1.7 — Wine версии 7.0.1, поддерживающий 32-разрядную архитектуру, который можно скачать по ссылке: wine_7.0.1-0-astra-se17_lsb_amd64.deb;

Из подключенных репозиториев Wine может быть установлен штатным менеджером пакетов (см. Графический менеджер пакетов synaptic) или командой apt:

sudo apt install wine

Для установки из файла с пакетом .deb:

sudo apt install ./<имя_файла>

Где располагаются файлы Wine?

Получить полный список файлов установленного пакета можно командой:

dpkg -L <имя_пакета>

Отдельно следует отметить служебные каталоги:

  • Для Wine 7.0.x, установленного из репозитория Astra Linux Special Edition 1.7 или из deb-пакета используется каталог /usr/share/wine . Исполняемые файлы располагаются в каталоге /usr/bin/;
  • Для Wine, установленного из сторонних источников, используется каталог /opt/<установленная_версия_wine> (библиотеки) Исполняемые файлы располагаются в каталоге/opt/<установленная_версия_wine>/bin/. Таким образом, каждая версия устанавливается в отдельный каталог, что позволяет установить одновременно несколько версий.

Пользовательские файлы Wine располагаются в пользовательских каталогах в так называемых префиксах — см. Что такое префикс? Что располагается в префиксе?.

Что такое префикс? Что располагается в префиксе? Как указать префикс?

Префиксы — подкаталоги в домашнем каталоге пользователя. В префиксы Wine помещает все файлы, относящиеся к приложениям Windows, установленным пользователем: ПО Windows, библиотеки, реестр. В том числе:

  • dosdevices — каталог, в котором перечислены виртуальные диски. В Windows разделы блочных устройств представлены в виде абстрактных дисков (томов), каждый из которых обозначается буквой. К примеру, системный диск по умолчанию называется «C:»;
  • drive_c — виртуальный диск C:, на котором располагаются компоненты Windows;
  • update-timestamp — метка времени;
  • system.reg, user.reg и userdef.reg — файлы реестра Windows, которые являются централизованным древовидным хранилищем настроек Windows-программ;
  • winetricks.log — файл, содержащий список команд использованных при настройке префикса через winetricks.

Префикс общего назначения имеет название .wine. Для некоторых приложений могут создаваться свои префиксы, например для Internet Explorer — .wine-IE8. Используемый по умолчанию префикс можно задать в переменной окружения WINEPREFIX:

export WINEPREFIX=~/.wine

Префикс также можно указать при запуске программы, переопределив переменную окружения. Например, для запуска Internet Explorer в префиксе .wine-IE8:

WINEPREFIX=~/.wine-IE8 /opt/wine-7.13/bin/wine ~/.wine-IE8/drive_c/Program Files/Internet Explorer/iexplore.exe

Указание префиксов и архитектур через переменные окружения

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

  • WINE — путь к исполняемому файлу wine. Например:

    export WINE=/opt/wine-7.13/bin/wine

  • WINEARCH — используемая архитектура префикса. Допустимые значения: win32 и win64. Например:

    export WINEARCH=win32

Значения переменных окружения, заданные с помощью команды export, сохраняются до выхода из пользовательской сессии и применяются глобально ко всем командам. По необходимости для отдельных команд можно переопределить значения переменных. Например, если одновременно используются Internet Explorer и iexplore, имеющие разные префиксы и архитектуры, то команды для их запуска могут быть такими:

  • Internet Explorer (префикс — wine-IE8, архитектура — win32):

    WINEPREFIX=~/.wine-IE8 WINEARCH=win32 $WINE ~/.wine-IE8/drive_c/Program Files/Internet Explorer/iexplore.exe

  • iexplore (префикс — wine, архитектура — win64):

    WINEPREFIX=~/.wine WINEARCH=win64 $WINE iexplore

Для того, чтобы удалить ранее заданную переменную окружения, можно использовать команду unset:

unset WINEARCH

Виды сборок и актуальные версии Wine для ОС Astra Linux 

Вид сборки Описание Актуальная версия
stable Стабильная ветка 4.0 и 7.0.x
devel Разрабатываемая сборка 7.13
staging Экспериментальная ветка. Содержит набор нестабильных исправлений и функциональных возможностей. Не рекомендуется для использования без конкретных целей. 7.13
cpro Разрабатываемая сборка с поддержкой КриптоПРО 7.0
специализированные сборки под конкретное программное изделие Например, T-Flex CAD, Справки БК, InnovaSystem LIS

Запуск файлов в Wine в форматах .exe, .msi, .msp, .bat, .application

Wine, доступный в расширенном репозитории Astra Linux Special Edition 1.7, поддерживает только 64-разрядную архитектуру.

  • .exe:

    wine <имя_файла>.exe

  • .msi:

    wine msiexec /i <имя_файла>.msi

  • .msp:

    wine msiexec /p <имя_файла>.msp

  • .bat:

    wine start <имя_файла>.application

  • .application (для запуска требуется компонент .NET):

    winetricks -q dotnet40
    wine start <имя_файла>.application

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

Запускать Wine в сессии суперпользователя (root) или с использованием sudo ЗАПРЕЩАЕТСЯ. Такой запуск дает приложениям Windows, потенциально содержащим вредоносный код, полный доступ к компьютеру.

Если ранее осуществлялся запуск Wine с использованием sudo, то необходимо удалить префикс с помощью команды:

sudo rm -fR ~/.wine

Если префикс был создан в сессии суперпользователя (root), то удалить префикс необходимо в каталоге /root.

Gecko и Mono

Mono — проект по созданию полноценного воплощения системы .NET Framework на базе свободного программного обеспечения (ПО). В основе проекта лежат спецификации на С# и CLI, переданные Microsoft в организации по стандартизации. Но Mono — это не просто клон .Net, здесь есть свои собственные технологии и библиотеки, которых нет в MS .NET. Цель Mono — помочь в переносе написанных для Windows .Net-программ под Linux и другие ОС.  В связи с отсутствием полной совместимости, использование Mono для запуска приложений Microsoft .NET невозможно. 
Gecko — это свободный движок вывода веб-страниц для браузера при работе Wine в сети Интернет. Если в Wine не предполагается использование сети Интернет (в том числе для работы Справочных страниц в ПО), то использование Gecko не требуется.

Порядок установки Mono и Geko описан в статье Установка wine на Astra Linux.

Почему не работает установка/запуск ПО 32-разрядной архитектуры в Wine в Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)?

Wine, доступный в расширенном репозитории Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), поддерживает только 64-разрядную архитектуру.

Как запустить ПО 32-разрядной архитектуры в Wine в Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)?

Для запуска 32-разрядных приложений в Astra Linux Special Edition 1.7 требуется:

  1. Использовать Wine версии 7.0.1, который можно скачать по ссылке: wine_7.0.1-0-astra-se17_lsb_amd64.deb;
  2. Создать 32-разрядный префикс.

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

Для создания префикса с 32-разрядной архитектурой выполнить следующие команды:

  1. Создать переменную окружения с указанием архитектуры:

    export WINEARCH=win32

    После задания переменной окружения префиксы, которые будут создаваться в текущем сеансе «Терминала Fly», будут иметь 32-разрядную архитектуру.

  2. Выполнить команду для создания префикса:

    wineboot

Команду wineboot можно не выполнять, а вместо нее сразу выполнить команду winetricks с установкой необходимых пакетов. Нужный префикс (.wine) при этом будет создан автоматически.

Internet Explorer и iexplore

Internet Explorer и iexplore — это два разных Web-браузера, которые можно использовать в среде Wine:

  • Internet Explorer (IE, IE8) — приложение Microsoft Windows, которое может быть установлено и запущено в 32-битной среде Wine;
  • iexplore — приложение Wine, которое устанавливается вместе с Wine работает в 64-битном префиксе;

Как запустить iexplore в Wine

Для запуска iexplore:

  1. Установить wine (см. Установка wine на Astra Linux) и настроить переменные окружения;
  2. Выполнить команду:

    $WINE iexplore

    Предполагается, что в переменной окружения WINE сохранен путь к исполняемому файлу wine.

Как установить и запустить Internet Explorer (IE) в Wine?

Версии IE выше версии 8 в Wine не работоспособны. Версия 8 (IE8) работает стабильно с Wine версий 7.0.1 и 7.13. Далее рассматривается работа с версий 7.13.

Для установки IE8 требуется:

  1. Проверить, включена ли блокировка трассировки ptrace:

    sudo astra-ptrace-lock status

    и, если блокировка включена (активна), то отключить блокировку:

    sudo astra-ptrace-lock disable

    и перезагрузить компьютер;

  2. Установить пакет cabextract;

    sudo apt install cabextract

  3. Создать 32-разрядный префикс Wine и установить приложение:

    export WINEPREFIX=~/.wine-IE8
    export WINEARCH=win32
    export WINE=/opt/wine-7.13/bin/wine
    winetricks ie8
    winetricks -q msxml6 win2k

    При выполнении команд будет задан вопрос про необходимость установки компонента Mono. Для использования IE8 этот компонент не требуется, и от его установки можно отказаться.

Запуск IE8 осуществляется командой:

$WINE ~/.wine-IE8/drive_c/Program Files/Internet Explorer/iexplore.exe

Устранение ошибок, возникающих при работе с Wine

Ярлык не работает. Как запускать ПО Wine через рабочий стол?

Когда установщик приложения Windows пытается создать ярлык приложения, Wine вместо ярлыка создает файл file.desktop. Чтобы откорректировать этот файл откройте Свойства — Ярлык — Команда и приведите команду к следующему виду:

При указании пути, где есть спец. символы (в примере: пробелы, скобки и символы «обратная косая черта» («») в указании пути Windows), такие символы требуется экранировать двумя символами обратная косая черта: «\», при этом сами символы «обратная косая черта» должны быть удвоены. То есть:

  • символ пробел представляется как последовательность «\ » (две обратные косые черты и пробел);
  • символы скобка представляются как последовательность «\(» или «\)» (две обратные косые черты и скобка);
  • символ обратная косая черта представляется как последовательность «\\»  (четыре обратные косые черты)

Так, путь «C:Program Files (x86)Name POSl.exe» будет задан в виде:

env WINEPREFIX=»/home/u/.wine-name» wine C:\\Program\ Files\ \(x86\)\\Name\ PO\\Sl.exe

Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5

Для устранения данной ошибки требуется корректно установить пакет ia32-libs в Astra Linux Special Edition 1.7. Для этого:

  1. Удалить ранее установленный пакет ia32-libs:

    sudo apt remove ia32-libs

  2. Удалить Wine:

    sudo apt remove <установленный_пакет_wine>

  3. Установить пакет ia32-libs из репозитория:

    sudo apt install ia32-libs

  4. Повторно установить Wine (см. Как может быть установлен Wine в Astra Linux).

dpkg: зависимости пакетов не позволяют настроить пакет ia32-libs

Для устранения данной ошибки выполнить действия из предыдущего пункта.

X Error of failed request: GLXBadFBConfig Major opcode of failed reqiest: 151 (GLX)

Данная ошибка может возникнуть у пользователей с видеокартами AMD, NVIDIA, IGPU. Для ее решения настроить параметр MESA_GL_VERSION_OVERRIDE:

export MESA_GL_VERSION_OVERRIDE=3.3

Чтобы не вводить данный параметр постоянно для запуска ПО, рекомендуется внести его в ярлыки следующей командой:

sed -i ‘s~^Exec=env (.*)~Exec=env «/bin/bash -c env MESA_GL_VERSION_OVERRIDE=»3.3» 1″~’ <имя_файла_с_ярлыком>

libGL error: failed to load driver: swrast X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 151 (GLX)

Данная ошибка может возникнуть у пользователей с видеокартами NVIDIA. Для ее устранения удалить символическую ссылку на библиотеку в разделе /usr/lib32/i386-linux-gnu:

sudo rm /usr/lib32/i386-linux-gnu/libGL.so.1

Unhandled Exception: System.ComponentModel.Win32Exception: Доступ запрещен

Для устранения данной ошибки отключить блокировку трассировки ptrace. Отключить блокировку можно двумя способами:

  1. В «Терминале Fly» ввести следующую команду:

    sudo astra-ptrace-lock disable

  2. Открыть Панель управления — Безопасность — Политика безопасности — Настройки безопасности — Системные параметры. Снять отметку Блокировка трассировки ptrace для всех пользователей, включая администраторов.

Для вступления в силу изменения блокировки ptrace требуется перезагрузка системы.

warning: wineserver not found!

Данная ошибка будет возникать у пользователей только при отсутствии пути к Wine. Если Wine установлен в каталоге /opt/<версия_wine>, то для работы winetricks следует определить значение локальной переменной wine:

export WINE=/opt/<версия_wine>/bin/wine

После определения переменной можно работать с «winetricks».

Winetricks

Назначение и установка

Winetricks — сценарий оболочки загружающий недостающие библиотеки (DLL) и шрифты из доверенных источников.

Для корректной работы winetricks в ОС Astra Linux перед началом установки winetricks необходимо установить пакеты ca-certificates, cabextract и libmspack0.
Для работы с графической оболочкой winetricks требуется установить пакет zenity.

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

  • Для Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7) с подключенным расширенным репозиторием: Интернет-репозитории Astra Linux Special Edition x.7 и Astra Linux Common Edition 2.12 установить пакеты из репозиториев:

    sudo apt install ca-certificates libmspack0 cabextract zenity

  • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) загрузить с помощью web-браузера пакеты: cabextract и libmspack0. Далее предполагается, что пакеты сохранены в подкаталог «Загрузки» домашнего каталога:

    sudo apt install ./libmspack0_*_amd64.deb ./cabextract_*_amd64.deb ca-certificates zenity


Загрузить и установить winetricks:

Компонент dotnet

Компонент .NET Framework устанавливается для обеспечения взаимодействия .net-программ с другими компонентами ОС.Взаимодействие обеспечивается через обмен запросами, независимо от того, на каком языке программирования были созданы данные программы.

Используя winetricks, можно установить для архитектур amd32, amd64 компонент dotnet, который будет взаимодействовать с программами, использующие данный фреймворк.

Для установки dotnet выполнить:

winetricks -q dotnet48

Список доступных dotnet для установки:

winetricks list-all| grep dotnet

Компонент vcrun

Библиотеки, позволяющие запускать программы, в разработке которых была использована среда Microsoft Visual C++, известная так же как MSVC.

Используя winetricks, можно установить для архитектур amd32, amd64 компонент vcrun, который будет взаимодействовать с программами, использующими данные библиотеки.

Для установки vcrun выполнить команду:

winetricks -q vcrun2019

Для получения списка доступных vcrun для установки выполнить команду:

winetricks list-all| grep vcrun

Компонент mdac

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

Используя winetricks, можно установить для архитектуры amd32 компонент mdac, который будет взаимодействовать с программами, связанными с базами данных.

Для архитектуры amd64 компоненту mdac требуется создать 32-битный префикс, с установкой необходимых библиотек и изменений реестра Windows.

Для установки mdac выполнить команды:

export WINEARCH=win32
winetricks -q mdac28

Wine — программа для запуска приложений Windows на компьютерах под Unix.

Запуск Wine на Windows был мечтой фанатов, которые следуют зову сердца «Мы делаем то, что должны, потому что не обязаны это делать», по крайней мере, с 2004 года, когда кто-то попытался скомпилировать Wine в Cygwin и сломал реестр хост-системы.

Оправдание: «А как же старые приложения, которые не работают должным образом в последних Windows?». Но мы-то понимаем, что истинная причина — «Я долго страдал за своё искусство, теперь ваша очередь».

В конце 2008 года меня одолела навязчивая мысль — и я (кажется, это был я) создал страничку WineOnWindows на вики Wine. Вкратце: это было вообще невозможно, поскольку всё работало через Cygwin, MinGW или Windows Services для Unix. Текущая страница не намного успешнее.

Windows 10 представила подсистему Windows для Linux, а Ubuntu удобно загружается из Microsoft Store. В результате наша глупая идея реализуется практически сама собой, разве что надо вручную установить переменную среды DISPLAY.

До сих пор это умопомрачительно бесполезно. Wine работает только с 64-разрядными приложениями Windows, то есть даже не со всеми приложениями, которые идут в составе самой Windows 10.

(Первоначальный проект стартовал после того, как кто-то не смог запустить Encarta 97 на Windows 10. Таким образом, как и любое настоящее гиковское решение, оно на самом деле не решает оригинальную проблему пользователя).

Но я хочу ещё раз подчеркнуть: сейчас это работает тривиально. Я не какой-то сумасшедший гений, которые реализовал фантастический проект — просто я, кажется, первым публично объявил о данном факте.

Как сделать эту глупую вещь

1. У вас же 64-битная Windows 10, верно? Это единственная версия с WSL.

2. Установите WSL. Панель управления -> Программы -> Программы и компоненты -> Включение и отключение компонентов Windows. Поставьте галочку «Подсистема Windows для Linux». Перезапустите Windows.

3. Зайдите Microsoft Store, установите Ubuntu (в основном, для её запуска и создан WSL). Я установил Ubuntu 18.04 LTS. Откройте Ubuntu, и вы увидите терминал bash.

4. Установите следующее из командной строки bash:

sudo dpkg --add-architecture i386
sudo apt update; sudo apt upgrade
sudo apt install wine-stable

Можете установить более актуальную версию Wine, если хотите помаяться дурью (не забывайте о двух новых библиотеках, которые нужны для wine-devel >=4.5 и которые ещё не вошли в Ubuntu!) Дайте мне знать, если это сработает.

5. Добавьте к своему .bashrc такую строчку:

export DISPLAY=:0.0

Вероятно, вы захотите запустить это и в текущем окне bash.

6. Установите VcXsrv, красиво упакованную версию xorg, скомпилированную для Windows, — просто возьмите последнюю версию исполняемого файла и запустите его. Запустите X Server через кнопку «Пуск» и XLaunch. Он проведет вас через дефолты — оставьте большинство из них как есть. Я на всякий случай поставил галочку «Отключить контроль доступа». Сохраните конфигурацию.

6а. Если хотите проверить, что X-сервер настроен правильно, установите sudo apt install x11-apps и запустите xeyes для краткого путешествия обратно в 80-90-е.

7. Сам wine не работает, потому что 32-битные бинарники не запускаются в WSL. На нашей 64-битной Windows 10 выдаётся ошибка /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Видимо, это исправили в WSL 2.

А пока запустим Блокнот в Wine!

wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe

TO DO: 32-битная поддержка. Придётся подождать выхода WSL 2. Интересно, будут ли работать древние программы Win16 — по идее, они должны запуститься в Wine, даже если больше не работают в самой Windows.

32-битные приложения через qemu

Спасибо анонимному комментатору, который предложил, как подступиться к запуску 32-битных приложений.

sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic 'x7fELFx01x01x01x03x00x00x00x00x00x00x00x00x03x00x03x00x01x00x00x00' --mask 'xffxffxffxffxffxffxffxfcxffxffxffxffxffxffxffxffxf8xffxffxffxffxffxffxff'
sudo service binfmt-support start

И теперь мы можем сделать:

fun@DESKTOP-7F6DU8P:~$ wine --version
wine-3.0 (Ubuntu 3.0-1ubuntu1)

Впрочем, Encarta 97 всё равно не работает:

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Unhandled page fault on read access to 0xffffffff at address 0x11df:0x00002c11 (thread 0011), starting debugger...
0011:err:seh:start_debugger Couldn't start debugger ("winedbg --auto 15 108") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger

Для тех, кто в теме: file говорит SETUP.EXE: MS-DOS executable, NE for MS Windows 3.x, так что нам нужно спуститься до редких 16-битных программ.

Encarta 97 устанавливается и работает безупречно в Wine 4.13 на Linux… но в 4.13 на Windows 10 все ещё нет:

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: extension "MIT-SHM" missing on display ":0.0".
Xlib: extension "MIT-SHM" missing on display ":0.0".
0009:err:process:__wine_kernel_init boot event wait timed out
001d:err:process:__wine_kernel_init boot event wait timed out
wine: Unhandled page fault on read access to 0xffffffff at address 0x11cf:0x00002c11 (thread 001e), starting debugger...001e:err:seh:start_debugger Couldn't start debugger ("winedbg --auto 28 152") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
001d:err:ntdll:RtlpWaitForCriticalSection section 0x7e6273e0 "syslevel.c: Win16Mutex" wait timed out in thread 001d, blocked by 001e, retrying (60 sec)
Xlib: extension "MIT-SHM" missing on display ":0.0".
Could not load wine-gecko. HTML rendering will be disabled.
001e:err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7b4a6abc
wine client error:1e: write: Bad file descriptor

Конечно, он выдаёт разные сообщения об ошибках в нескольких запусках…

Для запуска приложений, которые изначально разработаны для ОС Windows, пользователи Linux используют Wine. Если переводить дословно, то Wine — это НЕ эмулятор Windows, это альтернативный API. Для запуска большинства программного обеспечения Windows чистого Wine не хватает, нужны дополнительные шрифты или библиотеки.

К примеру, для запуска современных игр из под Wine требуется наличие графической библиотеки DirectX, установка под Wine которой вызывает очень много вопросов.

Столько же вопросов вызывает установка windows-шрифтов, .NET Framework`ов, библиотек MS Visual Basic и т.д.

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

Возможности скрипта Winetricks

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

Название пакета Описание пакета
art2kmin MS Access 2000 runtime. После этого, по-хорошему, нужна лицензия на Access 2000
colorprofile Стандартный цветовой RGB-профиль Windows
comctl32 MS common controls 5.80
comctl32.ocx MS comctl32.ocx and mscomctl.ocx, comctl32 необходимые библиотеки для VB6
controlpad MS ActiveX Control Pad
corefonts Microsoft шрифты: Arial, Courier, Times
d3dx9 Основная библиотека для DirectX 9
dcom98 MS DCOM (ole32, oleaut32); После этого, по-хорошему, нужна лицензия на Win98
dirac0.8 Уже устаревший DirectShow-фильтр Dirac 0.8
directx9 Полная версия DirectX 9 (не рекомендуется использовать совместно с отдельно установленной библиотекой d3dx9)
divx DivX видеокодек
dotnet11 .NET Framework 1.1 (После этого, по-хорошему, нужна лицензия на Windows)
dotnet20 .NET Framework 2.0 (После этого, по-хорошему, нужна лицензия на Windows)
fdshow ffdshow видеокодек
flash Adobe Flash Player и Firefox-плагин
fm20 Библиотека MS Forms 2.0
fontfix Исправление плохих шрифтов, которые приводят к «падению» некоторых приложений
fontsmooth-disable Отключение сглаживания шрифтов
fontsmooth-gray Включение сглаживание шрифтов Grayscale
fontsmooth-rgb Включение субпиксельное сглаживание RGB
fontsmooth-bgr Включение субпиксельное сглаживание BGR
gdiplus Библиотека gdiplus.dll для корректного отображения в приложении PowerPoint
gecko HTML-движок рендеринга страниц (Mozilla)
gecko-dbg HTML-движок рендеринга страниц (Mozilla), с отладкой
hosts Добавляет файл C:windowssystem32driversetc{hosts,services}
icodecs Intel-кодек (Indeo)
jet40 MS Jet 4.0 Service Pack 8
liberation Библиотека шрифтов ОС Red Hat (Sans, Serif, Mono)
mdac25 MS MDAC 2.5: Microsoft ODBC drivers и т.д.
mdac27 MS MDAC 2.7
mdac28 MS MDAC 2.8
mfc40 MS mfc40 (Microsoft Foundation Classes from Visual C++ 4)
mfc42 MS mfc42
mono20 mono-2.0.1
mono22 mono-2.2
msi2 MS Installer 2.0
mshflxgd MS Hierarchical Flex Grid Control
msls31 MS Line Services 3.1
msmask MS Masked Edit Control
msscript MS Script Control
msxml3 MS XML версии 3
msxml4 MS XML version 4
msxml6 MS XML версии 6
ogg OGG фильтры/кодеки: flac, theora, speex, vorbis, schroedinger
ole2 MS 16 bit OLE
pdh MS pdh.dll
quicktime72 Apple Quicktime 7.2
riched20 MS riched20 and riched32
riched30 MS riched30
tahoma Шрифт MS Tahoma
urlmon MS urlmon.dll
vb2run MS Visual Basic 2 runtime
vb3run MS Visual Basic 3 runtime
vb4run MS Visual Basic 4 runtime
vb5run MS Visual Basic 5 runtime
vb6run MS Visual Basic 6 runtime
vcrun6 MS Visual C++ 6 sp4 libraries (mfc42, msvcp60, msvcrt)
vcrun2003 MS Visual C++ 2003 libraries (mfc71,msvcp71,msvcr71)
vcrun2005 MS Visual C++ 2005 libraries (mfc80,msvcp80,msvcr80)
vcrun2005sp1 MS Visual C++ 2005 sp1 libraries
vcrun2008 MS Visual C++ 2008 libraries (mfc90,msvcp90,msvcr90)
vcrun2008sp1 MS Visual C++ 2008 sp1 libraries
vjrun20 MS Visual J# 2.0 libraries (requires dotnet20)
wininet MS wininet.dll (requires Windows license)
wme9 MS Windows Media Encoder 9 (По-хорошему, нужна лицензия Windows)
wmp9 MS Windows Media Player 9 (По-хорошему, нужна лицензия Windows)
wmp10 MS Windows Media Player 10 (По-хорошему, нужна лицензия Windows)
wsh56 MS Windows Scripting Host 5.6
wsh56js MS Windows scripting 5.6, jscript only, no cscript
wsh56vb MS Windows scripting 5.6, vbscript only, no cscript
xact MS XACT Engine (x3daudio?_?.dll, xactengine?_?.dll)
xvid xvid video codec
autohotkey Autohotkey (open source gui scripting language)
firefox3 Firefox 3
ie6 Microsoft Internet Explorer 6.0
kde KDE for Windows installer
mpc Media Player Classic
vlc Видеоплеер VLC
allfonts Установка шрифтов (corefonts, tahoma, liberation)
allcodecs Установка видеокодеков (xvid, ffdshow, icodecs)
fakeie6 Set registry to claim IE6sp1 is installed
native_mdac odbc32 and odbccp32
native_oleaut32 oleaut32
nt40 Запускать все приложения через Wine, как из под Windows NT 4.0 (дублирует выбор Версия Windows в окне Свойства Wine)
win98 Запускать все приложения через Wine, как из под Windows 98 (дублирует выбор Версия Windows в окне Свойства Wine)
win2k Запускать все приложения через Wine, как из под Windows 2000 (дублирует выбор Версия Windows в окне Свойства Wine)
winxp Запускать все приложения через Wine, как из под Windows XP (дублирует выбор Версия Windows в окне Свойства Wine)
vista Запускать все приложения через Wine, как из под Windows Vista (дублирует выбор Версия Windows в окне Свойства Wine)
winver= Можно указать любую ОС (по умолчанию используется Windows XP)
volnum Переименование drive_c в harddiskvolume0

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

Чтобы установить пакет с помощью скрипта Winetricks нужно:

  1. Установить пакет cabextract. Установить этот пакет можно командой:

    sudo apt-get install cabextract

  2. Загрузить скрипт Winetricks к себе на компьютер:

    wget http://www.kegel.com/wine/winetricks

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

    sh winetricks

    Где можно выбрать нужный пакет, доступный в Winetricks, для установки:
    Скрипт Winetricks или доводим Wine до ума

    Либо вручную установить, выбранный пакет, с помощью скрипта Winetricks:

    sh winetricks directx9

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

Примечание!

Если, к примеру, библиотека DirectX 9 уже имеется загруженная, то можно подложить ее в кэш Winetricks. Для этого создаем директорию, если она еще не создана:

mkdir ~/.winetrickscache

и помещаем в нее EXE-файл с графической библиотекой DirectX 9.

Комментарии (34)

Wiki
HOW-TO: Ускорение игр под X

Автор – Димитрий Бойчев (Dimitar Boichev) Искрение спасибо за инструкцию.

Приходилось ли вам играть в оконном режиме из-за того, что не могли переключиться по alt-tab в другое окно, в котором вас ждал вызов Skype/Jabber/и т.д.? Приходилось ли вам вообще отказываться от игры из-за крайне низкой скорости прорисовки (FPS)? А не бывало ли вам обидно, когда в двухмониторной системе мышка убегала на другой монитор вместо того, чтобы прокрутить карту в StarCraft? Если бывало что-то похожее, то самое время освоить новую технологию: запуск игр в отдельном сеансе (X-session)!

Я попытался выяснить, как решить три вышеописанных проблемы, и обнаружил, что игры, запущенные в новом сеансе, работают быстрее. Counter Strike Source 640×480 с качеством LOW тормозил так, словно был запущен c NORMAL, но когда я запустил его в отдельном сеансе, он «летал» в режиме 1024×748 NORMAL. Слишком хорошо, чтобы быть правдой? Отнюдь! Позвольте объясниться.

Первое, что надо сделать, это запустить новый сеанс Х-сервера, для чего надо открыть терминал, запустить nano от имени администратора (посредством sudo) и поправить файл Xwrapper.config:

sudo nano /etc/X11/Xwrapper.confignano – это простой текстовый редактор, работающий в консоли.

Чтобы узнать больше о /etc/X11/Xwrapper.config, откройте консоль и выполните:

man Xwrapper.configОткрыв Xwrapper.config, найдите строку «allowed_users=console» и измените ее на «allowed_users=anybody». Чтобы сохранить изменения, нажмите Ctrl+X; nano спросит, действительно ли вы хотите сохранить внесённые изменения, нажмите Y, далее редактор выведет имя файла, в который будет сохранён текст, в этой строке просто нажмите Enter – мы же хотим заменить старый файл.

Теперь мы можем запускать дополнительные Х-серверы из-под уже работающего X-сервера, но для этого не помешает перезапустить уже запущенный сервер. Я не уверен, что этот шаг необходим, но он не повредит. После перезапуска сервера настроим игры для запуска в отдельном сеансе. Сначала убедитесь, что игры запускаются не в «виртуальном рабочем столе»: запустите winecfg или откройте

Программы — Wine — Configure Wine.

Если на закладке «Приложения» упомянут EXE-файл вашей игры, щелкните по нему и откройте закладку «Графика», там не должно быть галочки в пункте «Эмулировать виртуальный рабочий стол». Если она там есть, то игра будет запущена в верхнем правом углу монитора, а это совсем не то, что нам нужно.

После этого я написал несколько сценариев для запуска нужных мне игр в отдельном сеансе. То есть я могу запустить их как в основном, так и в отдельном Х-сервере. Если вы не знаете, как писать сценарии оболочки, вот пример (для игры StarCraft и пользователя cherva. Не забудьте исправить параметры под свою обстановку):

Откройте текстовый редактор, например GEdit для GNOME или KWrite для KDE, и наберите:

#!/bin/bash
X :2 -ac -terminate -config only_one_monitor.conf & sleep 2
DISPLAY=:2 nice -20 env WINEPREFIX="/home/cherva/.wine" wine "C:GamesStarcraftStarcraft.exe"
Х — это команда запуска нового сеанса Х-сервера.

-ac — запрещает контроль доступа на уровне узлов, разрешая доступ с любого узла и позволяя любому узлу изменять список управления доступом. Используйте очень осторожно! Этот параметр обычно используется для проведения дистанционного тестирования.

-terminate — заставляет сервер отключиться после завершения запущенной в нем программы.

-config — использовать отдельный файл конфигурации для Х-сервера (помните проблемы с прокруткой в StarCraft?). Файл only_one_monitor.conf — по сути тот же самый /etc/X11/xorg.conf, из которого удалены настройки для второго монитора, так что мышка, подведённая к краю монитора, останется в пределах этого монитора, и игровое поле StarCraft будет прокручиваться. Остальные подробности можно прочесть по адресу: http://linux.die.net/man/1/xserver

Далее команда sleep 2 задерживает выполнение сценария на 2 секунды, чтобы дать новому Х-серверу достаточно времени для запуска.

DISPLAY=:2 — запустить следующую команду в нашем новом Х-сервере, а не в основном.

nice -20 — запустить процесс с наивысшим приоритетом (для большей производительности), далее указан запускаемый процесс: обычная команда, которую Wine формирует при создании ярлыка для программы в меню или на рабочем столе.

env WINEPREFIX — каталог настроек wine.

wine — собственно команда запуска эмулятора Wine. «C:GamesStarcraftStarcraft.exe» — запускаемая игра.

Набрав сценарий, сохраните его в какой-нибудь каталог. Затем откройте этот каталог в файловом менеджере (Nautilus или еще каком). Найдите сохранённый файл: нам надо сделать его исполняемым, для чего щёлкните по нему правой кнопкой мышки и выберите «Свойства». Перейдите на вкладку «Права» и поставьте галочку в строке «Позволять выполнение файла как программы». Закройте окно «Свойства» и откройте сценарий двойным щелчком. На Ubuntu вам будет предложено выбрать желаемое действие:

«Запустить в терминале / Показать / Отменить / Запустить».

Выбирайте «Запустить» и наслаждайтесь FPS >20, прокруткой в стратегиях и отсутствием проблем с переключением между окнами. Если вам понадобится вернуться в изначальный Х-сервер, нажмите Ctrl+Alt+F7, а оттуда в игру — Ctrl+Alt+F9 (или иногда — Ctrl+Alt+F8). Имейте в виду: я не бог весть какой знаток Linux, так что могут быть и другие способы сделать то же самое, но у меня и так работает, чему я очень рад.


Мой способ:

Ctrl+Alt+F1
xinit -- :2
wine путь/к/папке/game.exe
Прирост не большой, но тоже сойдёт.

Понравилась статья? Поделить с друзьями:
  • Wine could not open working directory starting in the windows directory
  • Wine cannot find l c windows system32 program exe
  • Windvr для windows 7 на русском
  • Windowsfix ru скачать бесплатно для windows 10 с официального сайта
  • Windscribe скачать торрент бесплатно для windows 10