Saturday, February 16, 2008

Употреба на Wine

Основен източник: http://gaming.gwos.org/; свободен и на места разширен/съкратен превод от английски; оригиналният текст е писан за дистрибуцията Убунту.

- Обща информация za wine
- Информация за "winecfg"
- Специална конфигурация
- Инсталирането на програми
- Редовното използване
- Външни проекти
- За напреднали


Обща информация за wine


Wine не е емулатор
Всъщност, името "WINE" е било акроним за "Wine Is Not an Emulator" (Wine не е емулатор). Емулаторът е програма, създаваща виртуална среда за изпълнение на софтуер. Wine не прави това. Wine е алтернативна имплементация на API на Уиндоус. Wine е съгласуващ слой, който позволява на Линукс да разбира изпълнимите файлове (.exe) на Уиндоус, и който също така позволява на тези изпълними файлове да разбират Линукс.

Използвайте най-новата версия на Wine...
...но имайте впредвид, че най - новата версия понякога включва програмни грешки ("бъгове"), които не са били налични в предишни версии. По - новите версии на Wine включват значителни подобрения на DirectX.

Не компилирайте Wine от изходен код
освен ако не ви е абсолютно наложително или ако го правите заради предизвикателството. Обикновено дистрибуциите включват прекомпилирани версии на новите версии на Wine в хранилищата си. За подробности вижте страницата за анонси на WineHQ. WineHQ разполага също и със страница за сваляне на предишни версии на Wine, в случай, че ви е необходима такава версия.

Използвайте терминала
Ако е инсталиран правилно, Wine се свързва с файлове от типа "exe", така че в повечето случаи е достатъчно да кликнете два пъти с мишката върху файла, за да пуснете програмата. Но това не е препоръчителният начин за използване на Wine. По - добре е да използвате Wine от терминал, така че директориите на програмата (application paths) да могат да бъдат настроени по подходящ начин (Вижте по - долу "Винаги използвайте cd за достигане до програмата"); в противен случай приложенията често се оплакват, че не могат да намерят нужните файлове. В добавка към това, пускането на програмата от терминал позволява показването на евентуални съобщения за грешка на програмата в терминала, което е много полезно с цел поправянето на тези грешки.

Бъдете готови за се потрудите за Wine
Wine не е перфектно. Дори не е завършено. Отначало не всичко ще работи правилно, и може да се наложи да изгубите малко време, за да разберете какво не е наред.


Информация за Winecfg


Изпълнете winecfg
Налага се да изпълните "winecfg" поне веднъж, за да настроите основните директории и устройства на Wine. Wine няма да работи на 100%, докато не направите това.

Емулиране на виртуален десктоп (Emulate virtual desktop)
Използването на тази опция прави работата на инсталациите много по-безпроблемна.

Използвайте "настройките на приложения" ("Application settings")
Диалоговият прозорец за настройките на приложения ви позволява да създавате специфични конфигурации за изпълними файлове. В момента на писането, тези конфигурации за ограничени до избор на версия на ОС (на Уиндоус), някои графични настройки, както и настройки на библиотеки (например кои DLL да бъдат използвани). Използването на "настройките на приложения" позволява неща като "използването на този DLL, но само ако се използва blah.exe". Това е много полезно, когато определена програма изисква специфичен DLL, но използването на този DLL не е необходимо или е лошо за други програми. По този начин се създава профил, който може и да бъде изтрит след това, без това (създаването) да има последици за Wine.

Версия на Уиндоус
Опитайте различни версии на Уиндоус за различните програми. Само поради факта, че определена програма е била направена за Windows XP, това не означава, че версиията на Wine за Windows 98 няма да работи по - добре. Когато намерите версия на Уиндоус, която да работи с тази програма, направете профил за тази програма (после можете лесно да го изтриете).

Използвайте драйвера на ALSA
Някои програми наистина изискват OSS, за да работят, но освен ако това не е абсолютно наложително, винаги използвайте ALSA. Драйверът за OSS вече не се разработва, а в момента поддръжката на Wine за ALSA се развива много активно. С всяко ново свое издание Wine включва значителни подобрения за ALSA.

Не позволявайте винаги на мениджъра на прозорците да ги контролира
Използването на мениджъра на прозорци може да причини проблеми при изпълнение например на игри в режим "на цял екран", както и други проблеми.

Внимавайте с отмяната на библиотеки (library overrides)
winecfg ви предоставя възможността да използвате естествените библиотеки на Windows вместо вградените DLL-и на Wine. Има някой DLL-и, които не трябва изобщо да бъдат отменяни: kernel32.dll, gdi32.dll, user32.dll и ntdll.dll. Ако отмените някои от тези библиотеки, Wine изобщо няма да работи. Някои други DLL-и няма да работят с игри, но самите те не предотвратяват работата на Wine.
ВАЖНО: Някои DLL-и на Майкрософт изискват вие да разполагате с автентичен Уиндоус и да приемете такъв лиценз, преди да бъдат използвани. Ако нямате такъв лиценз или не желаете да приемете условията, не ги използвайте.


Специална конфигурация


Създаване на символична връзка към CD-драйв
Wine създава символична връзка към директорията на монтиране на вашия CD-драйв, но понякога е полезно да бъде създадена символична връзка и към /dev директорията. Ако това не бъде направено е възможно да се получат проблеми с някои инсталации от CD-та, поради конфликти във връзките към различни директории. Променете /dev в кода по - долу така, че да отговаря на вашата система:
ln -s /dev/hdc ~/.wine/dosdevices/d\:\:


Полезни ключове за регистъра - настройка за производителност
Някои отличителни черти и настройки не могат да бъдат достигнати чрез winecfg, но могат да станат достъпни през регистъра на Wine. Уикито на Wine поддържа полезни ключове за регистъра и ги обновява с всяко ново обновяване на Wine. Два полезни ключа са опцията на Alsa драйвера "UseDirectHW", което може да поправи някои проблеми със звука, както и ключа за Direct3D "VideoMemorySize", който позволява използването на правилното количество памет на видеокартата. Без този ключ Wine автоматично ще докладва за памет на видеокартата от 64MB.

WINEPREFIXCREATE
Когато изпълните за първи път "winecfg", то изпълнява на свой ред WINEPREFIXCREATE, за да създаде директория .wine по подразбиране, но този инструмент може да бъде използван и за създаване на отделни директории за изпълнение на специфични други конфигурации на Wine. Това може да бъде полезно например за изпълнение на програми (игри), които изискват OSS за звука, а сме настроили звука на Wine на ALSA. Отделните директории позволяват изпълнението на тези програми (игри) без досадното предварително изпълнение на "winecfg" за промяна на звуковите настройки.
wineprefixcreate --prefix .ossgames

При изпълнение на игрите, които са в тази директория, е нужно да бъдат изменени параметрите за изпълнение чрез опцията "env WINEPREFIX=":
env WINEPREFIX=~/.ossgames wine "C:\Program Files\Game\Game.exe"

Тази опция се налага да бъде прилагана при изпълнението на всяко едно нещо, включително и "winecfg", на отделната директория.
ЗАБЕЛЕЖКА - Изключително удобно е създаването на такава "тестова лаборатория" на Wine, в която да бъдат изпробвани нови инсталации. Директорията може да бъде настройвана много гъвкаво, може да се експериментира с конфигурацията, с DLL файловете, да се чупят програмите. да се поправят... и всичко това без да бъдат повлияни паралелно съществуващите (и работещи) инсталации на приложения от Уиндоус. Ако се случи нещо ужасно с инсталациите в "тестовата лаборатория", директорията може просто да бъде изтрита и да бъде създадена нова, без загубата на работещите програми от Уиндоус. След като бъде уцелена правилната конфигурация, програмата може да бъде инсталирана на "работната" директория на Wine без страх от срив в програмата.

Инсталиране на Wine Gecko IE Engine
Някои програми изискват да има инсталиран Internet Explorer, за да могат да работят. Обаче инсталирането на Internet Explorer може много да повреди Wine. Вместо това, инсталирайте Wine Gecko IE Engine. За да го инсталирате, направете следното:
1. В терминал изпълнете:
wine explore http://www.winehq.org

2. Отговорете с "да" на запитването за инсталация
3. Идете на страницата с полезни ключове за регистъра и я превъртете надолу до раздела HKEY_LOCAL_MACHINE
4. Добавете всички ключове на Internet Explorer използвайки regedit

Резервни инструкции
Понякога Gecko engine може да не успее да се свали или да бъде инсталирано правилно. Ако се случи това, направете следното:
1. Отворете терминал и ръчно свалете/разархивирайте пакета Gecko чрез изпълнение на следното:
ЗАБЕЛЕЖКА - може да ви се наложи да инсталирате и пакета cabextract от хранилищата
wget http://downloads.sourceforge.net/wine/wine_gecko-0.1.0.cab && cabextract wine_gecko-0.1.0.cab

2. След това изпълнете следното, за да създадете нужните директории за Gecko:
mkdir -p ~/.wine/drive_c/windows/gecko/0.1.0/

3. Поставете разархивираните файлове на Gecko в новосъздадената директория:
mv wine_gecko ~/.wine/drive_c/windows/gecko/0.1.0/

4. В терминал изпълнете regedit. Идете на HKEY_Current_User/Software/Wine/MSHTML и създайте ключ със заглавие "0.1.0".
5. В ключа "0.1.0" създайте нова string стойност с име "GeckoPath" и задайте стойността на string на "c:\windows\gecko\0.1.0\wine_gecko"
6. Идете на страницата с полезни ключове за регистъра и я превъртете надолу до раздела HKEY_LOCAL_MACHINE. Добавете всички ключове/strings на Internet Explorer в регистъра.

Вече Gecko трябва да е инсталиран както трябва. За да тествате инсталацията, изпълнете в терминал:
wine iexplore http://www.winehq.org



Инсталирането на програми


Използвайте файловете ini на Уиндоус за да получите информация
Всяко инсталационно CD има файлове autorun.ini, а понякога има и файл setup.ini. Проверката на тези файлове може да помогне при проблем с инсталацията. Понякога файлът setup.ini ще даде информация за това какви изпълними файлове се изпълняват по време на инсталация. Познанието за това ще помогне за определяне на точното местоположение на проблема (и евентуалната поправка). Например: при инсталацията на програма за Уиндоус 95, инсталаторът почти завършва инсталирането, и се срива точно преди края; при проверка на файла seupt.ini се открива, че инсталацията завършва с повикване на изпълним файл за инсталиране на DirectX, който в действителност причинява срива в програмата; създаването на модифициран setup.ini файл с премахването на това повикване към DirectX завършва инсталацията успешно.

(Почти) никога не инсталирайте от директорията на CD-то
Не влизайте в директорията на CD-драйва с цел инсталиране. Такова действие може да причини проблеми с изкарването на CD-то при нужда от замяна на инсталационните CD-та (т.е. при инсталиране от няколко диска). Вместо това започнете инсталирането чрез изпълнението на следната команда от вашата домашна директория (~/), променяйки пътят и изпълнимият файл (.exe файла) според нуждата.
wine /media/cdrom/setup.exe

В редки случаи инсталацията може да изисква да бъдете в директорията на CD-то, за да заработи инсталатора, така че ако инсталиране по горния метод не успее, опитайте да инсталирате и чрез влизане в директорията на CD-то.

"wine eject" е хубаво нещо
Ако някоя инсталация налага смяна на дисковете и ОС се оплаква, че не може да изкара диска, отворете нов прозорец на терминал и изпълнете:
wine eject x:

(като, разбира се, промените буквата x: съсгласно това, което сте конфигурирали в Wine). Или може да изпълните следното:
wine eject -a

Тази команда ще изкара всички CD-ROM/DVD-ROM драйвове на вашата система. И по двата начина wine ще изкара CD-то и обикновено би позволило автоматичното разпознаване на новото CD. Понякога автоматичното разпознаване не работи; тогава се налага ръчна промяна на параметрите.

Не инсталирайте DirectX
Wine има собствени DirectX библиотеки; инсталирането на Мmicrosoft DirectX ще повреди тези библиотеки и Wine като цяло. Просто не го правете.
Въпреки това...DirectX библиотеките d3dx9_##.dll и d3dx10_##.dll могат да бъдат отменени (overridden) в winecfg и може да бъдат полезни при използване на игри с DirectX. Използването на тези файлове изисква да притежавате и да сте приели автентичен лиценз на Майкрософт.

Инсталирайте поправката за InstallShield
Има поправка за InstallShield, което може да коригира някои проблеми при инсталиране от CD. Използвайте я, тя ще ви помогне.

Винаги използвайте деинсталатора
Използвайте командата от терминала "uninstaller", за да вкючите инструмента на Wine за деинсталиране, когато искате да деинсталирате някоя програма. Не се опитвайте да използвате файловете за деинсталиране (uninstall.exe и подобни), които програмата понякога поставя в менютата по време на инсталация. Те често не работят добре, а инструмента за деинсталация на Wine обикновено работи.
ЗАБЕЛЕЖКА - Деинсталаторът няма да отстрани имената на приложенията в менютата. Ще се наложи това да направите вие.

Възможно е инсталирането на .MSI файлове

Обикновено програмите на Windows използват .еxe файл за инсталиране. Обаче понякога има програми, които използват инсталационен файл с разширение .msi. Има два начина за изпълнение на файл от този вид във Wine:
wine msiexec /i install.msi

ИЛИ
wine start install.msi


Редовното използване


Използвайте документацията на Wine
Нямам впредвид познатото RTFM. В момента Wine разполага с доста добро Уики. Това е доста скучно и сухо четиво, но в него има много полезна информация.

Използвайте Wine's Application Database
Хиляди хора тестват Wine всекидневно и много от тях добавят своите впечатления в Аpplication database (AppDB) с надеждата, че това ще помогне на други потребители и ще съдейства и за бъдещата разработка на Wine. Често написаното в AppDB включва решения за инсталиране и конфигуриране, до които са стигнали други потребители. В други случаи то може да ви помогне да разберете кои програми от Уиндоус са безнадеждни за опити с Wine (засега).

Как да стартирам някоя програма чрез Wine?
Wine е приложение с интерфейс от командния ред; най-първичният начин за стартиране на програма чрез Wine е:
wine application.exe


Винаги използвайте cd за достигане до програмата
Ако някога сте поглеждали в настройките на shortcut в Уиндоус, най - вероятно сте забелязали, че там има две полета за пътища. Едното е действителният път до изпълнимият файл. Другото е път с име "Run in...". Повечето изпълними файлове в Уиндоус желаят да "Run in" в директорията, в която са били инсталирани; използването на cd за достигане до директорията на програмата постига точно това.

Изключвайте WINEDEBUG - настройка за производителност
При нормална работа, Wine постоянно създава съобщения за отстраняване на ефектите (debug mesages) - това са всички тези неща "fixme". По - голямата част от това всъщност не е необходима, ако програмата ви вече функционира. Така че, за да освободите ресурси, стартирайте програмата, използвайки опцията "WINEDEBUG=-all". Повече няма да бъдат произвеждани такива съобщения. Ако се опитвате да поправите програма, използвайте "WINEDEBUG=fixme-all", за да отстраните само съобщенията "fixme", които са просто съобщения на разработчиците, и нямат значение за обикновения потребител.
WINEDEBUG=-all wine game.exe


Никога не стартирайте Wine като root потребител, със su или със sudo.
Wine все още е софтуер в бета фаза на разработка. Допускането до неограничен достъп до вашата система чрез изплзване на root акаунта или командата sudo може и най-вероятно ще причини проблеми. Просто не го правете.

Други команди на Wine
Wine има и няколко други команди освен "wine", "winecfg", "wineprefixcreate" и "uninstaller". Те могат да се окажат много полезни за вас:
1. wineboot - Симулира рестартиране на Уиндоус; полезно е, когато току-що инсталирана програма изисква рестартиране, за да може да бъде използвана
2. wine control - Стартира Control Panel. Ако инсталирате някои приложения, които използват shprtcut-а на Control Panel, това е начина да получите достъп до тях.
3. wineserver - wineserver се стартира автоматично от командата wine, но може също така и да бъде стартиран от терминал с различни опции за по - различен ефект:
* -d# - настройва нивото за показване на съобщения за грешки в терминала. Може и да намерите употребата на тази опция; аз никога не успях.
* -h - показва файла за помощ за wineserver
* -k - спира текущия wineserver. Полезно е, ако програмата е блокирала.
* -p - прави wineserver постоянно работещ, т.е. той ще продължи да работи дори след като програмата от Уиндоус бъде затворена. Полезно е, ако желаете да стартирате последователно няколко програми от wine, тъй като това ще намали времето за зареждането им.
* -w - кара wineserver да изчака, докато активният в момента wineserver завърши работата си. Може би ще имате повече късмет от мен в намирането на приложение и за тази опция.

Не винаги Wine работи безотказно - настройка за производителност
Ако по време на използване на програма от Уиндоус тя работи бавно или накъсано, понякога това може да бъде поправено чрез даване на процеса на по - висок приоритет за изпълнение. Това се извършва чрез командата "renice" след стартиране на програмата от wine. Командата "renice" позволява промяната на приоритета на текущо работещ процес. По - висок приоритет означава че другите процеси са с предимство. Командата използва обхват от -20 (най-висок приоритет) до 19 (най - нисък приоритет); приоритетът по подразбиране е 0. За използването на "renice" трябва да бъде отворен нов терминал и да бъде изпълнена подобна команда след като вече е пусната програмата в wine:
sudo renice -10 -n application.exe

Не е препоръчително да се скача на -20 за програми в Wine; започнете от -10, и ако това не подобри производителността на програмата достатъчно, опитайте подобряване с малки нараствания на приоритета. Най - вероятно ще откриете, че повечето програми не изискват повече от -10 за най - добра производителност. Разбира се, трябва да използвате Alt-Tab, ако програмата ви заема целия екран, за да стартирате renice.

Резервни инструкции
Ако предпочитате метод с графичен интерфейс, може алтернативно да използвате следното за renice (за среди с Gnome DE и със System Monitor):
1. Стартирайте програмата през терминал, след което използвайте ALT-Tab
2. Стартирайте System Monitor и превключете на Processes
3. С дясно копче кликнете и изберете "Change Priority"
4. Преместете плъзгача на желания приоритет и натиснете върху "Change Priority"
5. Напишете потребителската парола при поискването й
6. Затворете System Monitor и използвайте Alt-Tab отново.


Външни проекти


Wine Doors
Wine doors е програма с графичен интерфейс, която помага за инсталацията на много програми от Уиндоус. В момента на писане тя е в бета фаза на развитие. Изглежда много обещаваща.
ЗАБЕЛЕЖКА - тъй като е в бета фаза на развитие, използването й е на собствен риск.

Cedega
Технически Cedega е разклонение на Wine със специална насоченост към игрите. Cedega включва графичен потребителски интерфейс за инсталиране и стартиране на програми, като включва и поддръжка за софтуер с патентна защита. Cedega обаче не е безплатна. Тя изисква 5$ месечна такса, като минимумът е тримесечен. Малка отстъпка се предлага при предварително закупуване за една година.

CrossOver
Технически Crossover не е точно външен проект, тъй като е основният финансов поддръжник на Wine. CrossOver първоначално започва като средство за използване на приложенията на Microsoft Office в Линукс, но отскоро предлага поддръжка и за игри. CrossOver се базира на по-стари и по-стабилни версии на Wine, но с подобряването и обновяването на Wine, същото прави и CrossOver. Стандартното му издание струва $39.95 US.

ReactOS
Също като CrossOver това е поддържащ обект на Wine. Reactos е опит за създаване на напълно съвместима с Уиндоус операционна система, базирана на голяма част вече свършената в Wine работа. Проектът в момента е в алфа фаза на развитие, но вече има инсталационни CD-та, "живи" CD-та, образи за QEMU и VMware.
ЗАБЕЛЕЖКА - Отново, ReactOS е софтуер в алфа степен на развитие, и използването му е на собствен риск.


За напреднали (скриптовете са за Убунту; за други дистрибуции трябва да бъдат променени)



Използване на скриптове за стартиране - Настройка за производителност
Програмите на Wine често работят най-добре, ако бъдат стартирани в отделен X сървър. Wine не изисква мениджър на прозорци (Gnome, KDE, XFCE и т.н.), за да работи както трябва; ако стартирате програма от Уиндоус в отделен X сървър, може да получите значително подобрение на производителността й. Може да бъде получено още по - голямо подобрение на производителността, ако бъде спрян GDM/KDM преди стартирането на програмата (да бъде извършвано само от конзолата).

Скриптовете могат да бъдат намерени на оригиналния адрес на това HOWTO на английски. Не са включени тук.

No comments:

Categories

code (15) fun (2) linux (31) miscellaneous (9) music (8)

About me

I'm Adrian and this is my blog. Here I usually write about technical stuff (mostly about Linux).
Copyright: BY-NC_SA, Author: aeter