Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Common Edition 2.12



Внимание!

Wine, как и иное программное обеспечение из расширенного репозитория, является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации.
Подробнее см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.

При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере). При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном или выделенном уровне МКЦ. Подробнее см. Руководство по КСЗ в составе эксплуатационной документации используемого обновления.

Аннотация

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

Wine — свободное программное обеспечение, позволяющее пользователям UNIX-подобных операционных систем, например, GNU/Linux, Apple macOS и других UNIX-подобных с поддержкой архитектур CPU x86, AMD64 (и других архитектур CPU, при наличии совместимости с ними запускаемых приложений) исполнять 16-, 32- и 64-битные приложения, в том числе игры, созданные исключительно для Microsoft Windows, без наличия при этом установленной Microsoft Windows.

Официальный сайт Wine: https://www.winehq.org/.

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

Функционал Wine

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


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

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

Из подключенных репозиториев 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

Разрабатываемая сборка с поддержкой СКЗИ КриптоПРО

Согласно Положение ПКЗ-2005 (утв. приказом ФСБ России от 09.02.2005 г. N 66), СКЗИ эксплуатируются в соответствии с правилами пользования ими. Все изменения условий использования СКЗИ, указанных в правилах пользования ими, должны согласовываться с ФСБ России и специализированной организацией, проводившей тематические исследования СКЗИ. 
В правилах пользования КриптоПро не предусмотрено его функционирование с применением wine. Таким образом, данный способ не может применяться для обеспечения целей криптографической защиты информации.

 

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. Загрузить и установить Wine 7.13. См. Установка Wine на Astra Linux;

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

    sudo apt install cabextract

  4. Создать 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 PO\Sl.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

    Для Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7) с установленным обновлением БЮЛЛЕТЕНЬ № 2021-1126SE17 (оперативное обновление 1) требуется обновить пакет ia32-libs, для чего загрузить пакет ia32-libs_20220330+1.7se и установить взамен установленного из репозиториев:

    sudo apt install ./ia32-libs_20220330+1.7se_amd64.deb

  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:

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo mv -f winetricks /usr/bin

Компонент 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