Принцип работы Wine
- Перехват вызовов API: Когда приложение для Microsoft Windows выполняет вызов API, этот вызов перехватывается Wine.
- Трансляция вызовов: Wine переводит вызовы API в эквивалентные вызовы для Unix-подобной операционной системы.
- Исполнение и обратная связь: Unix-подобная операционная система выполняет соответствующие действия и возвращает результаты в запущенное с помощью Wine приложение.
Особенности Wine
- не эмулирует всю операционную систему, а реализует API для запускаемых приложений и обеспечивает совместимость на уровне исходного кода без необходимости в эмуляции или виртуализации;
- для работы с Wine не требуется лицензия на Microsoft Windows;
- разработчиками не гарантируется работоспособность части функций запускаемых приложений;
- cуществуют как 32-битные, так и 64-битные версии Wine. 64-битная версия может запускать 32-битные приложения.
и актуальные версии Wine для ОС Astra Linux
Вид сборки | Описание | Версия Astra Linux |
Актуальная версия Wine |
---|---|---|---|
stable |
1.6 /2.12 |
7.0.1 | |
1.7 /1.8 | 9.0.0 | ||
devel |
1.6 /1.7 /1.8/ 2.12 | 9.9 | |
staging |
1.6 /2.12 | 7.22 | |
1.7 |
9.6 | ||
1.8 |
8.18 | ||
cpro |
Разрабатываемая ветка с поддержкой СКЗИ КриптоПРО Согласно Положение ПКЗ-2005 (утв. приказом ФСБ России от 09.02.2005 г. N 66), СКЗИ эксплуатируются в соответствии с правилами пользования ими. Все изменения условий использования СКЗИ, указанных в правилах пользования ими, должны согласовываться с ФСБ России и специализированной организацией, проводившей тематические исследования СКЗИ. |
1.6 /2.12 |
7.0 |
1.7 |
8.8 | ||
Специализированные сборки под конкретное программное изделие |
Адаптируются под конкретное изделие. Примеры: T-Flex CAD, Справки БК, InnovaSystem LIS |
1.7 |
Зависит от конкретного программного изделия и его версии |
4.7 |
8.13 |
Ресурсы Wine
Получить список файлов установленного Wine :
dpkg -L wine-<вид_сборки>
Для сборки staging команда будет:
dpkg -L wine-staging
Отдельно следует отметить служебные каталоги:
- для Wine, установленного из репозитория Astra Linux Special Edition или из deb-пакета используется каталог
/usr/share/wine
. Исполняемые файлы располагаются в каталоге/usr/bin/;
- для Wine, установленного из сторонних источников, используется каталог
/opt/<установленная_версия_wine> (библиотеки)
. Исполняемые файлы располагаются в каталоге/opt/<установленная_версия_wine>/bin/
. Таким образом, каждая версия устанавливается в отдельный каталог, что позволяет установить одновременно несколько версий Wine.
Пользовательские файлы Wine располагаются в пользовательских каталогах в префиксах.
Прочие ресурсы:
- ярлыки программ, установленных в Wine хранятся в
~/.local/share/applications/wine/
; - кэш для установки пакетов, например Gecko или MONO в
~/.cache/wine/
; - архив пакетов, которые устанавливались с помощью Winetricks в
~/.cache/winetricks/.
Префиксы Wine
Префиксы — подкаталоги в домашнем каталоге пользователя. В префиксы Wine помещает все файлы, относящиеся к приложениям Windows, установленным пользователем: ПО Windows, библиотеки, реестр. В том числе:
dosdevices
— каталог, в котором перечислены виртуальные диски. В Windows разделы блочных устройств представлены в виде абстрактных дисков (томов), каждый из которых обозначается буквой. К примеру, системный диск по умолчанию называется «C:»;drive_c
— виртуальный диск C:, на котором располагаются компоненты Windows;update-timestamp
— метка времени;system.reg
,user.reg
иuserdef.reg
— файлы реестра Windows, которые являются централизованным древовидным хранилищем настроек Windows-программ,
заменяют — HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER и HKEY_HKEY_USERS\.Default соответственно;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
Если в имени папок содержится пробел, путь к файлу следует указывать в кавычках, например "/home/user/Рабочий стол"
Указание префиксов и архитектур через переменные окружения
Как указано в предыдущем разделе, префикс может быть задан значением переменной окружения WINEPREFIX. Аналогично могут использоваться следующие переменные окружения:
-
WINE — путь к исполняемому файлу
wine
. Например:export WINE=/opt/wine-<версия>/bin/wine
-
WINEARCH — используемая архитектура префикса. Допустимые значения: win32 и win64. Например:
export WINEARCH=win32
В Wine по умолчанию создается префикс с 64-х разрядной архитектурой
Значения переменных окружения, заданные с помощью команды 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
winefile
— аналог Проводника Microsoft Windows, запуск:wineconsole
или:wine cmd
-
wineboot
— служба, выполняющая инициализацию, запуск и перезагрузку префикса. Так же она выполняет симуляцию завершения работы и перезапуска для программ, запущенных в префиксе.Основные опции:
-
-
Завершение текущего сеанса пользователя:
wineboot -e
- Завершение текущего сеанса пользователя и запуск нового сеанса. Используется при измениях в приложениях, не требующих полной перезагрузки:
wineboot -u
- Принудительное завершение всех процессов:
wineboot -f
- Принудительное завершение всех процессов и завершение работы Wine. Имитирует выключение компьютера:
wineboot -k
-
-
wineserver
— служба, выполняющая роль ядра ОС Windows. Для каждого префикса запускается своя служба, что позволяет одновременно выполнять несколько программ из разных префиксов.
Основные опции:
- Ожидание завершения всех процессов перед остановкой сервера. Позволяет стандартно останавливать работу приложений:
wineserver -w
- Принудительный перезапуск службы:
- Принудительный перезапуск для префикса:
WINEPREFIX="/home/$USER/.wine_prefix" wineserver -k
- Режим отладки:
Где значение
n
— режим вывода информации:0 — без вывода;
1 — выводить основную информацию;
2 или выше — выводить более полную информацию.
Допустим ввод значений в диапазоне от 0 до 99.
- Запуск сервера на переднем плане, используется для отладки приложений:
wineserver -f
- Справка по командам:
- Ожидание завершения всех процессов перед остановкой сервера. Позволяет стандартно останавливать работу приложений:
regedit
— . Настройки, которыми можно управлять черезwinecfg
иwinetricks
, сохраняются в ветку реестраHKEY_CURRENT_USER\Software\Wine
,- запуск для 32-битных приложений:
- запуск для 64-битных приложений:
Основные ветви реестра:
-
system.reg
содержит ветвьHKEY_LOCAL_MACHINE
; -
user.reg
—HKEY_CURRENT_USER
; -
userdef.reg
—HKEY_HKEY_USERS\.Default
(содержит настройки Windows-пользователя по умолчанию).Для импорта в реестр
.reg
файла выполнить:wine regedit <имя_файла>.reg
- запуск для 32-битных приложений:
wine control —
упрощенный налог панели управления Windows. Запуск из префикса:WINEPREFIX="/home/$USER/.wine" wine control
запуск напрямую:
WINEPREFIX="/home/$USER/.wine" wine "/home/$USER/.wine/drive_c/windows/system32/control.exe"
winecfg
— программа для настройки префикса, запуск:
winecfg
- Приложения — выбор того, под какую версию Windows будет адаптирован префикс:
- Библиотеки — управление библиотеками, подключение сторонних DLL:
- Диски — подключение виртуальных и физических разделов, DVD-приводов, сетевых дисков. При создании префикса по умолчанию подключено два виртуальных диска — C: и Z:. Диск C: является системным каталогом префикса, а диск Z: ведет в корень файловой системы Astra Linux:
- Приложения — выбор того, под какую версию Windows будет адаптирован префикс:
Узнать версию Wine:
wine --version
Вывести справку для Wine:
wine --help
или:
man wine
Запуск приложений
Запуск файлов в Wine в форматах .exe, .msi, .msp, .bat, .application
-
.exe:
wine <имя_файла>.exe
-
.msi:
wine msiexec /i <имя_файла>.msi
-
.msp:
wine msiexec /p <имя_файла>.msp
-
.bat:
wine start <имя_файла>.bat
-
.application (для запуска требуется компонент .NET):
winetricks -q <имя_компонента>
wine start <имя_файла>.application
Запуск Wine от имени суперпользователя
Запускать Wine в сессии суперпользователя (root)
или с использованием sudo
ЗАПРЕЩАЕТСЯ. Такой запуск дает приложениям Windows, потенциально содержащим вредоносный код, полный доступ к компьютеру.
Если ранее осуществлялся запуск Wine с использованием sudo
, то необходимо удалить префикс с помощью команды:
sudo rm -fR ~/.wine
Если префикс был создан в сессии суперпользователя (root)
, то удалить префикс необходимо в каталоге /root
.
Удаление приложений в Wine
- Запуск графического инструмента Wine для удаления приложений:
Графический инструмент позволяет устанавливать приложения, для этого необходимо нажать на кнопку Установить в окне графического инструмента и указать путь к установочному файлу в открывшемся диалоговом окне
- Чтобы удалить приложение из префикса нужно выполнить:
WINEPREFIX="/home/$USER/.wine" wine uninstaller
- Чтобы удалить приложение без графического инструмента Wine необходимо выполнить:
wine uninstaller --remove <название_программы>
- Использовать деинсталятор приложения с расширением .
exe
:wine /<путь_к_папке_с_программой>/uninstall.exe
Удаление Wine
Способ удаления Wine зависит от того, каким образом был установлен инструмент: через пакетный менеджер или вручную в каталог /opt/
.
- При установке через пакетный менеджер удалить:
- Основной пакет:
sudo apt purge wine
- Конфигурационные файлы:
sudo apt autoremove
sudo apt clean
- Пользовательские данные (опционально):
rm -rf ~/.wine
- Удалить дополнительный пакет
winetricks
(если Winetricks был установлен изначально):sudo apt remove --purge winetricks
- Основной пакет:
- Удаление Wine, уановленного в
/opt/
:- Удалить каталог, в который был установлен Wine. Например, если Wine установлен в
/opt/wine-9.6
:sudo rm -rf /opt/wine-9.6
- Удалить пользовательские данные для
WINEPREFIX
(опционально):rm -rf ~/wineprefixes
- Удалить каталог, в который был установлен Wine. Например, если Wine установлен в
После выполнения шагов по удалению Wine, убедиться, что wine
больше не доступен в системе:
wine —version
bash: wine: команда не найдена
Рассмотрим поэтапно процесс установки и запуска Windows приложения в операционной системе Astra Linux.
Дистрибутив Astra Linux основан на ядре операционной системы Debian. И для Debian, а также других дистрибутивов Linux, существует прекрасное широко известное средство для запуска приложений Windows – программа Wine. Эта программа представляет собой своего рода «песочницу», в которой выполняется Windows приложение. Wine отслеживает, к каким Windows API обращается программа, и перенаправляет её вызов на аналогичные API Linux, если они есть. Из-за того, что Windows и Linux – очень разные операционные системы, не для каждого API Windows существует аналог в Линукс, и наоборот. Поэтому не все программы будут работать под Wine. Но многие. Рассмотрим установку Wine и запуск из-под него Windows приложения на примере Notepad++.
1Установка Wine в Astra Linux
Первым делом необходимо запустить менеджер пакетов Synaptic. Быстрее всего это сделать так. Нажать сочетание клавиш Win+R и начать вводить в поле команды название Synaptic. Почти сразу высветится найденная программа. Наводим курсор на неё (или стрелками и клавишей Enter) и запускаем. При запуске Synaptic потребует ввести пароль от учётной записи.
Запуск менеджера пакетов Synaptic
Теперь в менеджере пакетов необходимо найти Wine. Кликаем на иконку с лупой в верхней панели. И набираем в открывшемся окне поиска Wine.
Поиск пакетов программы Wine в менеджере пакетов Synaptic
Менеджер пакетов найдёт программу Wine и отобразит её компоненты. Для установки нужно нажать кнопку «Применить» на верхней панели инструментов.
Установка программы Wine в Astra Linux
Начнётся установка Wine.
Процесс установки программы Wine в Astra Linux
Необходимо дождаться окончания процесса инсталляции.
2Использование Wine в Astra Linux
Теперь идём на сайт программы Notepad++ и скачиваем установочный файл. Он будет загружен в директорию «Загрузки» текущего пользователя. Чтобы в этом убедиться, можно запустить терминал (например, xterm, запуск аналогично: Win+R и набрать xterm) и ввести в командной строке ls Загрузки. Появится содержимое каталога «Загрузки». В списке должен присутствовать скачанный установщик блокнота.
Невозможно запустить установщик напрямую, т.к. он скомпилирован под ОС Windows. Тут нам и придёт на помощь Wine. В командной строке терминала xterm набираем следующее:
wine Загрузки/npp.7.8.9.Installer.exe
Название файла, естественно, должно соответствовать вашему скачанному файлу. Начнётся процесс установки блокнота, стандартный для Windows. Просто пройдите его до конца, как обычно.
Процесс установки программы Notepad++ в Astra Linux
Когда программа будет установлена, Wine создаст на диске в своей директории иерархию каталогов, похожую на Windows. По умолчанию рабочая директория Wine скрыта. Чтобы её увидеть, нужно в проводнике (менеджере файлов) в мню «Вид» выбрать пункт «Отображать скрытые» или нажать сочетание клавиш Ctrl+H. Теперь директория Wine со всеми подкаталогами стала видна.
Настройка отображения скрытых файлов и каталогов в Astra Linux
В Linux директории, название которых начинается с символа точки «.», по умолчанию являются скрытыми.
Настройка отображения директории программы Wine в Astra Linux
Можем через менеджер файлов зайти в каталог Notepad++ и убедиться, что программа Wine создала всю иерархию директорий, как в Windows.
Можно запускать блокнот из командной строки терминала xterm:
wine "C:/Program Files (x86)/Notepad++/notepad++.exe"
Запуск Notepad++ из консоли в Astra Linux
Для быстрого запуска блокнота в менеджере файлов кликаем на файле notepad++.exe правой кнопкой мыши и в контекстном меню выбираем пункт Отправить – Рабочий стол (создать ярлык). На рабочем столе Astra Linux появится ярлык для запуска Notepad++.
Создание ярлыка для быстрого запуска Windows программы в Astra Linux
Если при нажатии на ярлык ничего не происходит, стоит посмотреть его свойства, кликнув правой кнопкой мыши на ярлыке. Затем в окне «Свойства» перейти на вкладку «Ярлык» и обратить внимание на строчку «Команда». В ней должна быть именно та же команда, которую мы только что набирали в консоли. Если это не так, поправьте:
Свойства ярлыка для запуска Windows программы в Astra Linux
Теперь вы можете полноценно пользоваться программой Notepad++, написанной для Windows, в операционной системе Astra Linux.
Как я уже упоминал, далеко не все Windows программы запускаются и работают из-под Wine с такой же лёгкостью. Но теперь вы знаете как проверить, будет работать под Линукс или нет интересующая вас Windows программа.
Запуск программ Windows в Astra Linux с использованием wine от EterSoft
Если требуется запускать программы Windows в Astra Linux, то можно это сделать через использование wine от EterSoft. Эта сборка оптимизирована для рабочих процессов и для часто используемых шрифтов. А так же в коммерческой версии эта сборка позволяет полноценно работать по сети (SMB,NFS) в многопользовательском режиме, устраняя проблемы блокировок. Приобретаем или заказываем сборку wine от EterSoft на ресурсе - https://etersoft.ru/products/wine На email высылается ссылка на скачивание сборки. Номера версий скорей всего будут другими а так же комплект сборки может отличаться, так что этот момент учитываем при установке. Загружаем файлы сборки wine с сайта EterSoft и устанавливаем: # Устанавливаем необходимые пакеты: sudo apt install cabextract libmspack0 # Это не свободный пакет!: sudo apt install ttf-mscorefonts-installer # Если используется видеокарта от nVidia и установлен видеодрайвер, то можно расширить установку: sudo apt install libvulkan1 mesa-vulkan-drivers # Вручную устанавливаем пакеты в очередности: wine-gecko_2.47.2-eter1astra_all.deb wine-mono_7.2.0-eter2astra_all winetricks_20220411-eter1astra_all.deb wine-etersoft-common_7.6.1-eter3astra_all.deb wine-etersoft_7.6.1-eter3astra_amd64.deb # Дополнительные пакеты, необязательно: wine-etersoft-programs_7.6.1-eter3astra_amd64 wine-etersoft-full_7.6.1-eter3astra_amd64 # Для использования программ работающих по сети с использованием SMB,NFS в многопользовательском режиме (к примеру сетевая и/или SQL версия 1с 7.7). Внимание - это уже коммерческий продукт!: wine-etersoft-network_7.0.2-eter1astra_amd64 # Установив необходимые пакеты wine, фиксим зависимости: sudo apt install -f # И перезагружаем систему: sudo reboot # После перезагрузки проверяем установку: wine64 # Производим необходимую настройку wine по умолчанию, как минимум заполняем пользователя и организацию на закладке "О программе": winecfg # Проверяем работу winetricks: winetricks # Теперь можно запускать приложения windows в Astra Linux. К примеру создадим ярлык для запуска winbox от Микротик, который заранее скачан и находится в папке App в домашней директории пользователя: # В поле "Имя" вставляем: Winbox # Прописываем в поле "Команда" строку: wine64 ~/App/winbox64.exe # Сохраняем ярлык, и теперь мы можем полноценно работать с оборудованием Микротик в Astra Linux
Боковая панель
astra-wine
Запуск Windows приложений на Astra Linux Embedded
Для запуска Windows приложений в среде Linux можно использовать Wine.
Для упрощения установки и настройки дополнительных компонентов и библиотек в среде Wine можно использовать Winetricks
Для упрощения установки различных версий Wine и управления ими, можно использовать PlayOnLinux, который можно установить из репозитория Astra Linux Embedded
Официальная документация
· Последние изменения: 2023/11/27 13:14 —
vladimir
Преимущества
Плавная миграция на ОС
Astra Linux с полной доступностью информационных систем
Графический интерфейс
и простота взаимодействия
при установке приложений с платформы Astra Wine
Автоматическое развертывание
и настройка приложений на машинах в корпоративной сети
Проверенная совместимость
Windows-продуктов с ОС Astra Linux
Экономия затрат
на адаптацию существующих информационных систем
Расширенный функционал
-
Запуск Legacy
приложений -
Запуск Active X и COM
функций -
Реализация функционала
для тонкого клиента
Компоненты
платформы
WinWatcher
Инструмент для анализа изменений в ОС Windows после установки
Windows-приложения, а также формированию списка приложений для адаптации в
среде Wine
Win4Lin
Инструмент, позволяющий настроить префикс для корректной установки
Windows-приложений в ОС Astra Linux
Мультитул
Набор инструментов для интегратора, которые позволят адаптировать в
контуре заказчика Windows-приложения
Репозиторий сборок Wine
Репозиторий преднастроенных сборок Wine с ПО иностранных и отечественных
решений
Витрина
Компонент для удобства работы с подготовленными и настроенными префиксами
Wine для запуска Windows приложений
Определить список ПО для миграции
Проверить по базе адаптированного ПО
Выбор ПО
для Миграции в Wine
Работы по адаптации и исследованию
Внедрение и тестирование в контуре заказчика адаптированного ПО
Применение
Astra Wine позволяет запускать ИС заказчика точно так же, как если бы они
работали в ОС Windows
Свяжитесь с нами
чтобы узнать больше о наших продуктах и услугах