Настройка и използване на Wine

Различния софтуер е разработен за различни операционни системи, и в повечето случаи не работи на друга операционна система, освен на тази за която е разработен. Windows програмите, не се стартират в ГНУ/Линукс защото те съдържат инструкции, които файловата система на ГНУ/Линукс не може да разбере, докато не бъдат преведени от Windows средата за ГНУ/Линукс средата. ГНУ/Линукс програмите, също не работят под Windows, защото Windows не може да определи всички техни инструкции.
Wine дава възможност да се стартират Windows програми в Unix-подобни операционни системи по-точно ГНУ/Линукс. Както виждате Wine е изпълнение/имплементация на Windows Application Programing Interface (API) библиотеката, действащ като мост между Windows програмата и Linux. По смисъл на това Wine е един вид слой, когато Windows програмата опита да изпълни инструкция, която ГНУ/Линукс системата не разбира нормално, Wine ще преведе тази инструкция в такава поддържана от ГНУ/Линукс системата. За пример, ако програмата запита системата за да създаде Windows pushbutton или text-edit поле, Wine ще превърне тази инструкция в нейния еквивалент в Linux като команда на мениджъра на прозорци използвайки стандартния X11 протокол.
Настройките на Wine могат да се извикат от Програми - Стартиране на Windows приложения - Настройка на Wine.
След като се стартира програмата се вижда, че тя има страници разположени на върха на прозореца отговарящи за:

- Приложения
- Библиотеки
- Графика
- Интеграция
- Устройства
- Звук
- Относно

Изменяйки параметрите в Приложения и Библиотеки страниците се променят начините за стартиране на програмите. Другите страници отговарят за работата на Wine и как се държи по време на работата.
Забележка: Приложения, Библиотеки и Графика страниците са свързани заедно!!! Ако потребителя избере Default Settings (настройки по подразбиране) в Приложения, всичките промени направени в Библиотеки и Графика страниците ще важат за всички приложения. Ако бъде избрана специфична програма в страницата Приложения и е маркирана, то тогава всички промени направени в страниците Библиотеки или Графика се отнасят само за тази програма. Това дава възможност за различни настройки на специфични програми.

1. Приложения

Wine притежава способност да подражава на държанието на различните версии на Windows. Като цяло, най-голямата разлика е между подражаване държанието на Win9x версиите или на NT версиите. Някои приложения изискват специфично поведение за да функционират и промяната на тази настройка може да накара другите програми да не работят. Напоследък версията, която Wine симулира е Windows 2000, ето защо ако се избере Win 98 някои програми ще работят по - добре.
В разглежданата страница има и възможност за избор на Default Settings (настройки по подразбиране). Ако потребителя избере това, ще забележи текущата избрана по подразбиране Версия на Windows за всички приложения. Проблемните програми могат да бъдат конфигурирани отделно от Default Settings. За да се направи това:

- Щракнете на бутона Добавяне на приложение.
- Прегледайте директориите докато намерите .exe файла
- След като той е добавен изберете специфичната версия на Windows, която искате Wine да емулира за тази програма.

2. Библиотеки

Някои програми изискват специфични библиотеки за да могат да бъдат стартирани. Wine наподобява Windows-ките системни библиотеки (още наричани собствени DLL-и) с подобни произволни версии, разработени да функционират по същия начин но без изискването за лиценз от Microsoft. Wine има много познати недостатъци с тези вградени версии, но в много случаи функционалността е задоволителна. Използването само на вградени DLL осигурява потребителя, че неговата система е Microsoft-free. Но въпреки това Wine има възможност да зареди DLL библиотеки на Windows.
Не винаги е възможно да се стартират приложенията само с вградените в Wine библиотеки. Понякога собствените за Windows DLL библиотеки просто работят по-добре. След като потребителя е намерил собствените DLL в Windows системата, то той трябва да ги постави в подходящо място, което е конфигурирано да бъде c:\windows\system32(с други думи казано трябва да копира всички DLL файлове от C:\Windows\System32 на своята Windows инсталация в /home/*user*/.wine/drive_c/windows/system32 б.пр.) (повече за това в drives секцията). Има четири собствени за Windows DLL библиотеки, които не трябва да се използват: kernel32.dll, gdi32.dll, user32.dll, и ntdll.dll. Тези библиотеки изискват достъп на ниско ниво от ядрото на Windows, какъвто просто не съществува в Wine.
След като са копирани собствените за Windows библиотеки, трябва да се укаже на Wine да ги използва. Може да се конфигурира Wine да избира между собствените и вградените библиотеки като две различни нива. Ако е зададено Default Settings в страницата Приложения, направените промени ще рефлектират на всички приложения. Или има възможност да се презапишат глобални настройки за едно приложение чрез задаването му в страницата Приложения.
За да бъде зададено зареждане на FOO.DLL, трябва да се въведе "FOO" в кутията Нова библиотечна замяна: и да се натисне бутона Добави. За промяна поведението на DLL, трябва да бъде избрана конкретната библиотека в Съществуващи замени: и да се натисне Редактирай. По подразбиране ще бъдат избрани собствените за Windows библиотеки преди вградените на Wine. Също така може да се избере да се използват само едните или другите, както и да се откажат и двете.

3. Графика

Има няколко различни графични настройки които могат да се конфигурират. За повечето хора тези, които са по подразбиране са достатъчни.
Първите няколко настройки обикновено влияят на игрите и са доста ясни. Може да се възпре мишката да излиза от прозореца на DirectX програмата(т.е. играта) и по подразбиране тази опция е маркирана. Има няколко причини поради, които потребителя може да иска курсора на мишката да излиза от прозореца. Например по лесно е да се играе ако курсора е "хванат" в по малко пространство. Друга причина да се включи тази опция е за по - прецизен контрол на мишката Wine изкривява местоположението на мишката за да подражава на начина по който Windows работи.
Може да решите да пуснете Емулирай виртуален работен плот. В този случай, всички приложения ще се стартират в отделен прозорец. Може да решите, че по-лесния начин е да тествате тези игри, които променят(често невъзможно) екранната резолюция. Прикрепейки ги към прозорец за повече контрол над тях и е възможно загуба на производителност. Размерите, които можете да опитате са 640x480 (по подразбиране) или 800x600.
Накрая, можете да конфигурирате някои Direct3D настройки. В повечето случаи тези настройки се установяват автоматично, но можете да ги усилите по собствен начин. Някои игри опитват да установят истинската система за да видят нейните специфични възможности. Изключвайки тази опция Wine няма да съобщи за рендинг възможностите на системата при всички случаи. Това може да доведе до увеличаване на кадрите за секунда, намаляване качеството на картината или пък играта може въобще да не тръгне.

4. Устройства

Wine емулира изискването на Windows за конфигурация с твърд диск. Много хора са на "ти" със стандартните букви "A:" за устройството представящо флопи диска, "C:" за основния системен диск, т.е. Wine използва същата концепция, и създава върху нея подобна вътрешната за Windows система.
Wine конфигурацията на диска е много проста. В страницата Устройства виждате бутон за добавяне или премахване на дискове. Когато изберете да добавите диск, ще се впише нов диск и диска по подразбиране ще му бъде зададена буква. Можете да промените къде дисковете се записват чрез промяна на Път: кутията. Ако не сте сигурен за описания път използвайте бутона "Открий" за да го намерите. Премахването на диск е лесно както и добавянето му, чрез бутона "Премахни".
Winecfg има възможност автоматично да засича дисковете във вашата система. Препоръчително е да се стартира, преди да се конфигурират дисковете ръчно. Просто щракнете на Открий... бутона за да извърши Wine търсене във вашата система.
Ако се интересувате как да конфигурирате настройките на диска извън Winecfg, в случая сте щастливец защото това е крайно просто и лесно. Всички настройки на диска се съхраняват в специална директория ~/.wine/dosdevices. Всеки "диск" е просто връзка към мястото където той съществува. Wine автоматично настройва две устройства при първото си стартиране:
$ ls -la ~/.wine/dosdevices/
lrwxrwxrwx 1 wineuser wineuser 10 Jul 23 15:12 c: -> ../drive_c
lrwxrwxrwx 1 wineuser wineuser 1 Jul 23 15:12 z: -> /
За да добавите друго устройство (диск), например CD-ROM просто създайте нов връзка водеща до: $ ln -s /mnt/cdrom ~/.wine/dosdevices/d: Отбележете, че DOS-овския стил на наименуване е буква плюс двоеточие като "а:" например. Така, че връзката водеща до вашето c: е ~/.wine/drive_c, можете да я промените например чрез ~/.wine/drive_c/windows/system32, която ще води до c:\windows\system32.

5. Звук

Wine може да работи с няколко различни аудио подсистеми, които може да бъдат избрани в страницата "Audio". Winecfg определя автоматично достъпните драйвери, но потребителя може сам да си избере кой да бъде използван. Старите ГНУ/Линукс системи използващи 2.4 kernel или по ранни обикновено използват "OSS"драйвера. Повечето 2.6 kernel системи използват "ALSA". Драйвера "aRts" беше изключен поради липса на поддръжка. Ако използвате GNOME може да ползвате EsounD. Въпреки това OSS и ALSA аудио драйверите са много повече тествани, така че е препоръчително да се придържате към тях ако е възможно.
DirectSound настройките са за игрите. Можете да изберете ниво на хардуерно ускорение каквото желаете. Но за повечето хора "Full" е добре.

6. Интеграция

Wine може да зареди Windows теми (визуализации) ако са достъпни. Тъй като това обикновено не е необходимо условие за да се работи с Wine или приложенията, то дава възможност да се промени облика на дадена програма. Wine поддържа новите MSStyles типове за теми. За разлика от стария Microsoft Plus! тематичен стил, uxtheme енджина поддържа специални .msstyles файлове, които могат да променят облика на всичките бутони в Windows. Това е много по-малко от това което модерните ГНУ/Линукс десктопи поддържат от години. Ако ви харесва опитайте този метод:

- Свалете Windows XP тема. Уверете се че съдържа .msstyles файл.
- Създайте нова директория във вашето Windows устройство: $ mkdir -p ~/.wine/drive_c/windows/Resources/themes/name-of-your-theme
- Преместете .msstyles в тази нова директория.
- Използвайте страницата Интеграция на winecfg за да изберете новата тема.

7. Други неща за настройване

- Серийни и паралелни портове

Конфигурирането на серийните и паралелните портове е много подобно на конфигурирането на дисковете - просто създадохме символна връзка в ~/.wine/dosdevices с името на диска. Windows-ките серийни портове имат наименование идващо от думата "com" последвана от номер, например com1, com2, и т.н. Подобно на тях паралелните портове използват думата "lpt" последвана от номера, като например lpt1. Значи трябва да се обвържат тези устройства с подобните Unix, като /dev/ttyS0 и /dev/lp0. Например за да конфигурираме един сериен и един паралелен порт трябва да стартираме следните команди:
ln -s /dev/ttyS0 com1
ln -s /dev/lp0 lpt1

- Споделени мрежови ресурси

Windows-ките споделени ресурси може да бъдат преглеждани в директорията unc/, така че всички достъпни ресурси като \\myserver\some\file ще се изобразяват в ~/.wine/dosdevices/unc/myserver/some/file/. Например ако използвате Samba за да монтирате папката \\myserver\some в /mnt/smb/myserver/some то тогава трябва да изпълните следната команда
ln -s /mnt/smb/myserver/some unc/myserver/some
За да стане тази папка достъпна за Wine (не забравяйте да направите директория unc).

- Шрифтове

Конфигурирането на шрифтовете, беше много неприятен проблем, но сега е малко по лесен за отстраняване. Ако имате колекция от TrueType шрифтове в Windows, просто копирайте всичките .ttf файлове в c:\windows\fonts.

- Принтери

Wine може да си взаимодейства директно с локалната CUPS печатна система, за да намери достъпните принтери. Конфигурирането на принтери с Wine е много лесно, след като сте уверен, че вашата CUPS конфигурация работи. Wine все пак се нуждае от командата lpr(от CUPS), когато отпечатва документа.
Ако не използвате CUPS, а старата BSD-Printing система то тогава:
· Всички принтери от /etc/printcap се инсталират автоматично в Wine.
· Wine се нуждае от PPD-файл за всеки принтер(generic.ppd си идва с Wine)
· Командата lpr е извикана когато се отпечатва документа

- Скенери

В Windows, скенерите използват TWAIN API за достъп до основния хардуер. Изградения за Wine TWAIN DLL просто изпраща запитванията до библиотеката на ГНУ/Linux - SANE. Така че да настроите скенера си под Wine трябва първо да се уверите, че имате достъп до SANE. След това да се уверите, че имате xscanimage готово за използване. Обикновено SANE и xscanimage се разпространяват заедно, но е възможно да не са включени във вашата дистрибуция. Работата със скенер е познат проблем. Ако при вас работи моля, не се колебайте да опишете начина на работа за използването на SANE под Wine в тази секция.

- ODBC бази данни

ODBC системата в Wine, както и печатната система, е разработена да се "закача" на високо ниво към Unix системите. По - добре се убедете, че Wine използва съвместим Unix ODBC провайдер, като UnixODBC. Така ако конфигурирате Wine да използва вградените си odbc32.dll, така че Wine DLL ще комуникира с вашите Unix ODBC пакети и ще работи, ако конфигурирате Wine да използва собствените за Windows odbc32.dll то той(Wine) ще се опита да зареди и същите такива ODBC32 драйвери.

- Конфигуриране на ODBC под Unix

Първата стъпка в използването на Unix ODBC система с Wine е, разбира се да изтеглите тази Unix ODBC система и да я накарате да работи. Това може да изисква свалянето на изходния и код или RPM пакети. Има няколко достъпни Unix ODBC системи; една от които използва и автора е unixODBC (с IBM DB2 драйвер). Има също и ODBC-ODBC мост/bridge, който може да бъде използван за достъп до Microsoft Access данни. Обикновено такива системи включват инструмент, като isql, който дава възможност за достъп до данните от конзола, така че да можете да проверите дали системата работи.
Следващата стъпка е да обвържете Unix ODBC библиотеката към вградената в Wine odbc32 DLL. Вградената odbc32 (по-принцип) изглежда като променлива на средата LIB_ODBC_DRIVER_MANAGER за името на ODBC библиотеката. Например в .bashrc файла на автора има следния ред:
export LIB_ODBC_DRIVER_MANAGER=/usr/lib/libodbc.so.1.0.0
Ако тази променлива на средата не е зададена, то тогава системата търси библиотека наречена libodbc.so и вие може да добавите символна връзка водеща до вашата библиотека. Например като root трябва да стартирате:
$ ln -s libodbc.so.1.0.0 /usr/lib/libodbc.so
$ /sbin/ldconfig
Последната стъпка е да се конфигурира това за така, че да сме сигурни, че Wine е настроен за използването на вградената odbc32.dll, чрез модифицирането на DLL конфигурацията. Тоест тази вградена DLL просто играе роля на отправна точка между извикващия сигнал и Unix ODBC библиотеката.
Ако имате някакви проблеми, използвайте WINEDEBUG=+odbc32 командата, преди да стартирате Wine, това ще изведе какво се случва с Wine. Едно предупреждение - някои програми в известен смисъл "лъжат" малко за да избегнат ODBC библиотеката. Например Crystal Reports се обръща към регистъра за да провери DSN. Решението на проблема е описано в unixODBC страницата където е секцията : използване на unixODBC с Wine.

- Използване на Windows ODBC драйвери

Собствените за Windows ODBC драйвери е установено, че работят с много типове данни, включително MSSQL и Oracle. По принцип MSSQL може да бъде достъпен през ГНУ/Линукс чрез приложението Winelib. По-скоро вместо простото копиране на DLL файловете, повечето ODBC драйвери изискват, Windows базиран инсталатор за да се стартират и правилното да се конфигурират регистрационните ключове.
За да настроите поддръжката на MSSQL, първо трябва да изтеглите и стартирате mdac_typ.exe инсталатора от microsoft.com. За да настроите вашата ODBC връзка, вие първо трябва да стартирате CLICONFG.EXE и ODBCAD32.EXE под Wine. Можете да ги намерите в windows\system директорията след стартирането на mdac_typ. Сравнете, изхода от тези програми, с изхода една Windows машина. Някои неща, като протоколи, може да липсват, защото те са инсталирани заедно с операционната система(Windows). Можете да копирате липсващите функционалности от съществуваща Windows инсталация, както и необходимите регистри. По този начин изградената Windows инсталация, работи с Wine, както го прави и при истинската.

- Настройки на Windows/DOS променливи

Вашата програма може да изисква някои променливи за да бъде настроена правилно и да стартира нормално. В този случай трябва да настроите променливите в ГНУ/Линукс командния интерпретатор, за да може Wine да мине през пълните настройки на променливи до Windows-кия команден интерпретатор. Пример за баш интерпретатор(другите интерпретатори имат различен синтаксис):
export MYENVIRONMENTVAR=myenvironmentvarsetting
Това ще подсигури вашата Windows програма, че същата има достъп до MYENVIRONMENTVAR променливите след като бъде стартирана от Wine. Ако искате да имате MYENVIRONMENTVAR настройките за постоянно, тогава можете да ги сложите в /etc/profile, или също ~/.bashrc що се касае до този команден интерпретатор.
Отбележете, че въпреки това има някои изключения от правилата: Ако искате да промените PATH, SYSTEM или TEMP променливи, разбира че не можете да го направите, докато не промените unix настройките на средата. Вместо това вие можете да ги настроите в регистъра. За да го направите трябва да стартирате wine regedit и да отидете до
HKEY_CURRENT_USER/Environment
ключа. Сега вече можете да правите или модифицирате стойностите на променливите, които искате.
"System" = "c:\\windows\\system"
Това настройва къде са Windows системните файлове. Windows системната директория трябва да бъде директорията която се използва за Windows настройката. Така докато използвате /usr/local/wine_c_windows като Windows път, системната директория трябва да бъде /usr/local/wine_c/windows/system. Това трябва да е настроено без интервали, и трябва да имате права за запис в тази папка.
"Temp" = "c:\\temp"
Това трябва да е директорията където искате да записвате вашите временни файлове, като /usr/local/wine_c/temp например. Отново без интервали и пълни права за запис в тази папка!!
"Path" = "c:\\windows;c:\\windows\\system;c:\\blanco"
Функционира като PATH настройките в UNIX boxes. Когато wine стартира приложение чрез wine sol.exe, ако sol.exe е в директорията определена в Path настройките, то тогава wine ще го стартира (разбира се ако sol.exe е в текущата директория ще бъде стартирано именно това приложение). Убедете се, че имате винаги windows и system директории (За това трябва да имате "c:\\windows;c:\\windows\\system").

Статията в значителна част е базирана на извадки от българския превод на официалното потребителско ръководство на Wine с автор kill_u.
Текстовото съдържание е достъпно при условията на Лиценза за свободна документация на ГНУ, версия 1.2 или коя да е следваща, публикувана от Фондацията за свободен софтуер; без непроменяеми раздели, без предни и задни корици.