WINE@Etersoft/Настройка WINE@Etersoft

Материал из Русский WINE
Перейти к: навигация, поиск

Настройка WINE@Etersoft

Настройка локального win-окружения

Прежде чем начинать работать с WINE, каждому пользователю, от имени которого будут запускаться win-приложения, необходимо настроить локальное win-окружение (по умолчанию оно расположено в каталоге ~/.wine/). Настройка окружения выполняется автоматически при первом запуске 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
Note: Создавая логические диски WINE, нужно принимать в расчёт, что права доступа win-приложений к файлам на этих дисках будут определяться правами доступа данного пользователя к реальным файлам host-системы.

Сменные носители

При подключении в 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.

Note: Если при использовании COM- или LPT-портов в WINE (например в команде copy файл LPT1) выдаётся сообщение Access Denied, скорее всего у пользователя недостаточно прав для прямого обращения к порту. Проверьте права командой ls -l /dev/lp0 и при необходимости внесите пользователя в соответствующую группу (обычно uucp (dialout для Ubuntu) для последовательных портов и lp для параллельных).

Сетевые пути (UNC)

WINE позволяет работать win-приложениям, которые обращаются к ресурсам при помощи сетевого пути (UNC). Это необходимо для тех приложений, которым обязательно требуется указание UNC-пути, например путь к базе данных: \\someserver\db\db1. Сетевые пути в WINE обеспечиваются так же, как и логические диски -- при помощи символьных ссылок на каталоги host-системы.

Note: Обратите внимание, что отношения к сетевой работе это не имеет, и в wine является просто средством отображения локального каталога в сетевой путь. О подключении по сети читайте раздел Подключение Linux-клиентов.

Допустим, программа обращается к файлу \\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.


Wine
Search.png
Программы работающие в WineСкачатьШкольный Wine
WINE@Etersoft Общие сведенияУстановка на 64-битные ОСОсобенности разработкиПатчи для WINE@EtersoftАдминистративная установкаДополнительные компонентыКак получить WINE@Etersoft?Лицензия на документациюГлоссарийИспользование аппаратных ключей защиты в LinuxДополнительная информация • [ Совместная работа | по CIFSпо NFS ] • Изменение системных ограниченийРегистрация продуктаПошаговая инструкция по установке rpm-пакетовОбращение в службу поддержкиТерминальные решенияУстановка WINE@EtersoftПодписка на обновленияНастройка WINE@EtersoftРазработчикуEnterpriseЧто такое WINE@Etersoft SQLВозможностиСреда для запуска приложений WindowsИспользование WINE@EtersoftFAQ по использованию WINE@EtersoftОсновные командыWINE@Etersoft/LocalЧто такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+Запуск Консультант+ (сетевой версии)ГарантF1Инфо-Бухгалтер 8.xНалогоплательщик ЮЛ
1C Отличия от обычного WineМестоположение базы 1С1C: Предприятие 7.7 в WINEНастройка 1С 7.7 для работы с SQL-серверомУстановка 1С: Предприятия 8.1Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование WinecfgИспользование Regedit
Легальность DCOM95IE5DCOMMSXML
Утилиты для работы с Wine WinetricksWineToolsQ4WinePlayOnLinuxIEs4LinuxWine-DoorsSwine
Разработчику
Компоненты WindowsЗапрет отключения защиты программыУправление обработчиком исключенийStraceNTИзмерение скорости функций WinAPIGLУстройство чтения смарт-картПрофилированиеТесты для проверки интерфейсовНаписание тестов в системе WineАутентификация в домене ADРепозитории
Помощь Создание патчейНаписание приложения под wineОтправка патчейСборка eterhackСборка wine-public
Отладка Способы отладкиWINEDEBUGWinedbg
Разработка WINE
1CODBCWinHelpКомпасМетодикаТестирование доступаЦветаФайловый диалогТестированиеЛитератураИзображенияWin32ШрифтыФайловые блокировкиСсылкиКлючи защитыRPMWineGeckoListViewУпаковка Wine
Производителю
Родственные проекты
LUKReactOSARWINSSCrossOver
Прочее
PageSetupDlgFreeBSDWwr