WINE@Etersoft/Настройка WINE@Etersoft
Содержание
Настройка WINE@Etersoft
Настройка локального win-окружения
Прежде чем начинать работать с WINE, каждому пользователю, от имени которого будут запускаться win-приложения, необходимо настроить локальное win-окружение (по умолчанию оно расположено в каталоге ~/.wine/
). Настройка окружения выполняется автоматически при первом запуске WINE (достаточно в командной строке ввести команду wine
и дождаться завершения её работы) или запустить любую из программ WINE через системное меню.
При первом запуске WINE создаёт необходимую инфраструктуру в домашнем каталоге данного пользователя, для чего выполняет следующие действия:
- создаёт каталог который будет служить основным диском (
C:
) для win-приложений, для удобства этот каталог доступен какwine_c
в домашнем каталоге пользователя. - создаёт необходимую иерархию каталогов на диске
C:
(Program Files, Windows,...), привычную для win-приложений; - создаёт системный и пользовательский реестры со всеми необходимыми значениями;
- устанавливает необходимые системные компоненты и библиотеки DLL;
- выстраивает соответствия каталогов host-системы и логических дисков WINE;
Процедуру начальной настройки win-окружения можно запустить в любой момент и впоследствии командой
$ wine --update
Эта команда выполнит все те же операции, что и при первом запуске WINE.
Копирование файла лицензии
Начиная с версии WINE@Etersoft 1.0.10 требуется установить файл лицензии, подтверждающий правомочность использования данного продукта, и содержащий регистрационный номер и другую информацию об обладателе лицензии.
Файл лицензии выдаётся при заказе сборки со страницы продукта: присылается ссылка для скачивания файла WINE-ETERSOFT.LIC
(также можно его называть в нижнем регистре: wine-etersoft.lic
). Если сам продукт у вас уже есть на компакт-диске, достаточно будет скачать только файл лицензии. Файл лицензии уникален и неизменен, обновлять его может понадобится только при переходе на новую версию продукта.
Для того, чтобы файл лицензии был воспринят, его нужно скопировать в каталог ~/.wine
, C:\WINDOWS\INF
или в/etc/wine. Просматриваются каталоги в указанном порядке. Пакеты WINE@Etersoft должны быть установлены предварительно и выполнена настройка локального wine-окружения (см. выше).
Проверить, что файл лицензии принят, можно через команду winediag
, или посмотрев на вывод wine --version
в консоли. Через графический интерфейс подробную информацию о лицензии и продукте выводит wine winver
.
Логические диски
WINE создаёт в локальном win-окружении каждого пользователя логические диски, к которым запущенные в WINE win-приложения могут обращаться стандартным для Windows способом: C:\путь
, D:\путь
и т. д. Все логические диски WINE, кроме диска C:
, представляют собой символьные ссылки в каталоге ~/.wine/dosdevices
, которые могут указывать на любые каталоги host-системы.
По умолчанию логические диски WINE будут расположены следующим образом:
C: ~/.wine/dosdevices/c: D: ~/ (домашний каталог)
Как минимум один диск -- C:
будет создан в любом случае. Остальные диски необязательны, даже одного C:
будет достаточно для работы в WINE. Правила создания ссылок по умолчанию описаны в файле /etc/wine/script.d/map_devices.sh
, при необходимости можно добавить соседний файл с подобным содержимым. Файлы из этого каталога применяются при первом запуске WINE и при выполнении команды wine --update
.
Каждый пользователь может вручную изменить соответствия логических дисков WINE каталогам host-системы или создать любое количество дополнительных дисков. Все логические диски для WINE представлены обыкновенными символьными ссылками на каталоги в каталоге ~/.wine/dosdevices
. Чтобы создать новый логический диск или изменить имеющийся, достаточно создать новую символьную ссылку с нужным именем.
[tester@test tester]$ ln -s /var/data/1c ~/.wine/dosdevices/f: [tester@test tester]$ ls -l ~/.wine/dosdevices total 0 lrwx tester 13 Nov 25 a: -> /mnt/floppy lrwx tester 8 Nov 25 a:: -> /dev/fd0 drwx tester 4096 Июн 14 c: lrwx tester 10 Июн 14 com1 -> /dev/ttyS0 lrwx tester 19 Июн 14 d: -> /home/tester/ lrwx tester 8 Июн 14 lpt1 -> /dev/lp0 lrwx tester 12 Ноя 25 f: -> /var/data/1c
Сменные носители
При подключении в host-системе сменного носителя (компакт-диска, флэш-диска или дискеты) в WINE создаётся дополнительный диск, являющийся ссылкой на подключенное устройство. Это работает только при работающих сервисах HAL и DBUS в host-системе.
Безопасность
Советы по соблюдению должного уровня безопасности в WINE могут быть сведены к двум простым соображениям:
- жертвой ошибки в программе или злонамеренных действий со стороны win-приложения (вируса) может стать только та часть файловой системы, которая входит в область видимости WINE;
- права доступа к данным определяются правами пользователя, запустившего WINE.
Поэтому следует максимально ограничить область видимости WINE, включив туда только те данные, доступ к которым необходим win-приложениям для работы. Можно сформулировать и несколько более конкретных рекомендаций:
- Никогда не запускайте WINE от имени пользователя
root
! Запущенное от имени root win-приложение получит привилегии этого пользователя. Для работы они ему никогда не потребуются, а во вред могут быть употреблены запросто. - Win-приложения не должны получать доступ к важным системным каталогам, и в особенности к корневому каталогу файловой системы (
/
). Даже целиком включать домашний каталог пользователя в зону видимости WINE почти наверняка не требуется.
Настройка портов (COM и LPT)
Для отображения портов в ~/.wine/dosdevices
могут быть созданы ссылки на соответствующие устройства в host-системе (см. предыдущий пример про создание логического диска). Например, ln -s /dev/ttyUSB1 com4:
добавит порт COM4 в WINE, работающий через устройство ttyUSB1. Обычно это не требуется, и соотнесение устройств выполняется WINE автоматически. Например, в Linux COM1 будет соответствовать /dev/ttyS0
, а LPT1- /dev/lp0
.
copy файл LPT1
) выдаётся сообщение Access Denied, скорее всего у пользователя недостаточно прав для прямого обращения к порту. Проверьте права командой ls -l /dev/lp0
и при необходимости внесите пользователя в соответствующую группу (обычно uucp
(dialout
для Ubuntu) для последовательных портов и lp
для параллельных).
Сетевые пути (UNC)
WINE позволяет работать win-приложениям, которые обращаются к ресурсам при помощи сетевого пути (UNC). Это необходимо для тех приложений, которым обязательно требуется указание UNC-пути, например путь к базе данных: \\someserver\db\db1
. Сетевые пути в WINE обеспечиваются так же, как и логические диски -- при помощи символьных ссылок на каталоги host-системы.
Допустим, программа обращается к файлу \\server\share\file.txt
. Чтобы обращение по такому пути работало в WINE, вам потребуется создать в каталоге ~/.wine/dosdevices/unc/
каталог server
, содержащий символьную ссылку share
, указывающую на расположение данного ресурса в host-системе.
$ cd ~/.wine/dosdevices $ pwd /home/tester/.wine/dosdevices $ mkdir -p unc/server $ rm unc/server/share $ ln -s /var/local/share unc/server/share $ ln -s unc/server/share u:
В этом примере искомый файл file.txt
располагается в каталоге /var/local/share
.
Ресурс /var/local/share
будет доступен win-приложениям через UNC-путь \\server\share
, либо через диск U:
.
Назначение диска U:
на путь \\server\share
выполняется автоматически при инициализации WINE, начиная с версии 1.0.10-eter23.
Шрифты
Системе WINE доступны те же шрифты, что и другим приложениям в host-системе <ref>Для получения списка доступных шрифтов WINE использует пакет fontconfig, а для отрисовки символов -- библиотеку freetype2.</ref>. Соответственно, к этим шрифтам получают доступ и win-приложения. Кроме этого, вместе с WINE поставляются базовые растровые и векторные шрифты, которые должны быть метрически идентичны аналогам из Windows.
Существует базовый набор шрифтов (MS Core Fonts) -- многие приложения рассчитывают на наличие в системе шрифтов со стандартными именами из данного набора. Для корректной работы таких приложений, а также для обеспечения точного соответствия документов при печати потребуется установить этот набор шрифтов из пакета fonts-ttf-ms
, прилагающегося к дистрибутиву WINE@Etersoft (каталог fonts на диске).
Для систем на основе Debian и Ubuntu можно установить пакет msttcorefonts
из штатного репозитория системы;
Для систем на основе FreeBSD перейдите в каталог /usr/ports/x11-fonts/webfonts
и выполните make install
для установки набора шрифтов.
Также набор данных шрифтов можно свободно скачать с сайта http://corefonts.sourceforge.net.
Вместе с WINE@Etersoft в пакете fonts-ttf-liberation
поставляется набор шрифтов Liberation, лицензированный Red Hat, Inc. под лицензией GPL. В набор входят Liberation Sans, Liberation Serif и Liberation Mono, совместимые метрически со шрифтами Monotype Arial, Times New Roman и Courier New соответственно. В системах Debian/Ubuntu этот пакет уже имеется и называется ttf-liberation
. WINE@Etersoft настроен на использование этих шрифтов при отсутствии Arial/Times/Courier. Соответствие метрик неизменность документов и интерфейсов при использовании этих шрифтов вместо оригинальных.
Шрифт, метрически совместимый с Tahoma, поставляется в составе WINE@Etersoft и также называется tahoma.
Сделать определённые шрифты доступными win-приложению можно несколькими способами:
- Для всех пользователей -- поместить шрифты в host-системе штатным для системы способом (по стандарту -- каталог
/usr/share/fonts
); - Для всех пользователей WINE -- поместить шрифты в каталог
/usr/share/wine/fonts
; - Для конкретного пользователя -- поместить эти шрифты в каталог шрифтов пользователя (
~/.fonts
); - Только для win-приложений данного пользователя -- поместить шрифты непосредственно в каталог шрифтов на логическом диске WINE (обычно
~/wine_c/windows/fonts
).
Рекомендуется помещать шрифты в системные каталоги только в составе соответствующих пакетов, а не копировать их из других систем.
В ветке HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
хранятся шрифты, используемые, когда запрашиваемый шрифт не найден, либо не поддерживается.
В пользовательской ветке реестра Control Panel\Desktop
могут быть заданы следующие значения:
- FontSmoothingType -- 1 = ClearType не используется, включено обычное сглаживание, 2 = ClearType используется;
- FontSmoothing -- 0 = не использовать сглаживание, 1 = использовать сглаживание, 2 = использовать ClearType для сглаживания;
- FontSmoothingGamma -- должно находится в диапазоне от 1000 до 2200. Малое значение даёт наиболее тёмный текст на светлом фоне;
- FontSmoothingOrientation -- указывает, какая структура пикселей используется в мониторе: RGB, BRG, или плоская. В основом мониторы используют RGB-структуру.
- плоская структура = 0- у устройства нет пиксельной структуры; это означает что световой поток каждого цвета равномерно распределён по площади пикселя. ClearType при этом не может быть применим.
- RGB = 1- монитор имеет пиксели в виде трёх полосок в следующем порядке: красный, зелёный, синий;
- BGR = 2- монитор имеет пиксели в виде трёх полосок в следующем порядке: синий, зелёный, красный.
См. также http://shlimazl.nm.ru/rus/fonts_ttf.htm
Всё о шрифтах в WINE: http://wiki.jswindle.com/index.php/Fonts
См. также http://www.wine-reviews.net/wine-reviews/tips-n-tricks/how-to-enable-font-anti-aliasing-in-wine.html
Решение проблем
Что делать, если какая-либо программа не работает? Вы все сделали согласно инструкции, но ваша программа по-прежнему не работает. Что ж, попробуем рассмотреть несколько рецептов решения проблемы.
Используйте другие настройки версии Windows. В некоторых случаях может помочь использование эмуляции других версий Windows.
Команда запуска не находит программу, которую вы хотите запустить. Убедитесь, что вы сменили текущий каталог на тот, в котором находится программа. Убедитесь, что программа расположена на диске C:
(в пути ~/.wine/dosdevices/c:
). Если вы запускаете программы через ярлык, попробуйте запустить её в консоли, возможно вы получите дополнительную информацию о причине проблемы.
Попробуйте запустить программу через команду wine98
, wineole
или winexp
.
Измените настройки DLL. Запустите программу, указав переменную окружения WINEDEBUG=+loaddll
, чтобы увидеть, какие DLL используются и какие варианты (сторонние или встроенные) применяются. Убедитесь, что необходимые файлы DLL находятся в каталоге программы или в каталоге C:\windows\system32
и попробуйте поменять различные настройки библиотек.
Установите всё заново. Win-программы полны загадок, WINE тоже не очень простая вещь. Если какая-то программа упорно не хочет работать, но известно, что работать она должна, мы рекомендуем удалить (или переименовать) каталог ~/.wine
, и начать всё заново. Для чистоты эксперимента можно ещё удалить и поставить заново пакеты WINE, возможно, получив при этом последнюю версию пакетов от поставщика.
Запустите команду winediag
и обратитесь к разделу Диагностика проблем
для уточнения предупреждений о проблемах, которые выдаст команда.
Доступ к протоколу ICMP (ping) от пользователя
Некоторым программам нужен доступ к протоколу ICMP, но отправка таких пакетов является привилегированной операцией и обычному пользователю запрещена. Чтобы разрешить пользователю ping, нужно включить соответствующий capability.
Решение для ALT Linux:
# apt-get install libcap-utils # setcap 'cap_net_raw=ep' /usr/bin/wine-preloader
Решение для Ubuntu:
$ sudo aptitude install libcap2-bin $ sudo setcap 'cap_net_raw=ep' /usr/bin/wine-preloader
Для того, чтобы разрешить setcap внутри OpenVZ-контейнера, нужно выполнить (при остановленном контейнере)
# vzctl set <VE_ID> --capability setpcap:on --save
Для проверки работы ICMP в WINE реализована команда ping
.