Про Wine (и про WineX).

В этом выпуске рассылки помещены 4 статьи:

1) Установка и настройка эмулятора Windows - wine. Очень подробная статья.
2) WineX. Установка и русификация WineX + запуск MaxPayne, Counter-Strike / Half-Life и Warcraft3.
3) Wine. Получение и установка Wine и WineX (из css), запуск программ и оптимизация.
4) Настройка шрифтов в Wine и WineX. Совет по русификации от Opennet.ru.

 Установка и настройка эмулятора Windows - wine.
  Вадим Логинов, [email protected] 

Многие из тех, кто перешел на Linux, сделав ее основой своей рабочей станции, столкнулись с проблемой запуска приложений для Windows операционных систем. Существует много программ, которые написаны для окошек, но еще не были перенесены в другие системы. Для запуска таких приложений используются эмуляторы. Для Linux самыми известными и наиболее распространенными являются win4lin и wine. Так как первая является сугубо коммерческим продуктом и может быть недоступна многим пользователям по ряду причин, я остановлюсь на установке и настройке второй программы.

Установка
Wine вы можете без труда найти в Интернете, но обязательно начните с сайта программы http://www.winehq.com/. Здесь вы найдете ссылки на новые версии программы, исправления, а также много другой полезной для себя информации.
Итак, вы нашли и скачали архив с программой.
У меня архив назывался wine20020905.tar.gz. У вас он будет называться подобным образом, отличия будут состоять только в версии программы.
Далее давайте рассмотрим два варианта установки: от имени какого-либо пользователя с использованием установочного скрипта, входящего в дистрибутив программы, и от имени суперпользователя.
Если у вашей системы нет других пользователей, но вы выбрали первый вариант установки, то давайте их добавим.
От имени суперпользователя используем chmod для изменения прав на пользование файлом. Теперь, когда файл стал общедоступен, добавим нового пользователя в систему. Для конфигурирования и управления пользователями и группами в системе Linux используется два файла: /etc/passwd и /etc/group.

Ну ладно, не буду рассказывать про все тонкости управления пользователями, сэкономим ваше время и приступим к непосредственному добавлению пользователя в систему.
useradd Vadim -u 2002

Если же нам он надоел, набираем команду userdel Vadim, которая удалит всю информацию об этом пользователе из системы.
А в принципе можно добавить пользователей с помощью linuxconf.

Давайте для начала создадим директорию, в которую мы распакуем эмулятор. Пусть это будет /usr/src/wine/. Команды, которые мы будем выполнять, в консоли будут выделены.
mkdir /home/Vadim/wine/

Далее скопируем в эту директорию архив с программой.
cp wineXXX.tar.gz /home/Vadim/wine

Теперь набираем команду su Vadim. Теперь мы работаем от имени этого пользователя.
Так как недавно в КГ рассматривались архиваторы и работа с ними, я хочу, чтобы вы самостоятельно распаковали wine.
Теперь заходим в папку, в которую произвели распаковку, и набираем
./tools/wineinstall


После этого начнется создание объектных файлов и установка самой программы по заданным по умолчанию директориям.
Если же вы решили изучить и изменить код программы либо процедуру установки, то вам придется набрать большее число команд:
./configure

make depend

make

make install

И вдобавок ко всему будет необходимо с помощью команды ldconfig, предварительно поправив файл /etc/ld.so.conf, где записаны пути к различным библиотекам. Очень часто бывает, что после установки пользователь пытается запустить какую-либо Windows-программу и в ответ получает сообщение об ошибке, а именно об отсутствии библиотеки. Так как первым делом используются функции библиотеки libntdll.dll.so. Если у вас возникла какая-нибудь проблема при установке wine, то лучше всего сначала самостоятельно прочитать всю документацию, прилагающуюся к программе, и только потом, если ваша проблема не была рассмотрена, задавать вопросы на форумах. Это касается не только эмулятора Windows.
Я предполагаю, что у вас не возникло проблем с установкой, поэтому давайте займемся настройкой программы.

Настройка
При инсталляции программы был создан файл конфигурации wine, а именно
/<Имя пользователя который производил установку>/.wine/wine.conf

Одной из важнейших секций файла конфигурации является та, в которой указаны корни наших виртуальных дисков. То есть в Windows мы привыкли открывать Мой компьютер, а затем делать двойной щелчок на диске, который там был назван буквой латинского алфавита. В Linux же немного по-другому. Структура носителей на жестком диске нам представляется как разветвленная сеть, имеющая свое начало в корневом разделе, к которому прикреплены каталоги, некоторые из которых у нас могут являться виртуальными разделами жесткого диска, или, если быть точнее, разделами диска, к которым мы привыкли используя Windows.
Предположим, что наш жесткий диск был разбит на 3 раздела. Два имели fat32-систему (диск C и D) и один external2-раздел.

После монтирования этих систем, к примеру:
mount —t vfat /dev/hda1 /mnt/c

mount —t vfat /dev/hda6 /mnt/d

я получил доступ к разделам fat32.

Для того, чтобы не было проблем с приложениями Windows, и они считали, что диск разбит на разделы C и D, мы и пропишем в файл конфигурации:
[Drive C]
"Path" = "/mnt/c"
"Type" = "hd"
"Filesystem" = "win95"

[Drive D]
"Path" = "/mnt/f"
"Type" = "hd"
"Filesystem" = "win95"

Теперь у нас есть разделы, к которым смогут обращаться приложения Windows. Кто знает, может вам захочется использовать файловый менеджер. Нужно дать возможность wine работать с cd-rom’ом. Для этого прописываем в файл конфигурации такие строки:
[Drive G]
"Path" = "/mnt/cdrom"
"Type" = "cdrom"
"Device" = "/dev/cdrom"
"Filesystem" = "win95"

Но и не исключена вероятность того, что вы захотите иметь доступ к вашему корневому разделу Linux, получив при этом доступ ко всей хранящейся там информации.
[Drive H]
"Path" = "/tmp"
"Type" = "hd"
"Filesystem" = "win95"
Теперь приступим непосредственно к настройке самой виртуальной Windows операционной системы.

[wine]
"windows" = "C:\\windows"
"system" = "C:\\windows\\SYSTEM"
"path" = "C:\\WINDOWS;C:\\WINDOWS\\COMMAND;C:\\PROGRA~1\\BORLAND\\DELPHI4\\BIN;
C:\\PROGRA~1\\BORLAND\\VBROKER\\BIN;C:\\PROGRA~1\\BORLAND\\VBROKER\\JRE\\BIN"
"temp" = "C:\\WINDOWS\\TEMP"
В этой секции мы указали wine-пути ко всем приложениям и библиотекам, которые должны вызываться без входа в их директории. К примеру, у меня на разделе /dev/hda1, примонтированному к директории /mnt/c, находились программы, для которых должна была производиться автоматическая подгрузка библиотек, причем благодаря такой установке в файле конфигурации их поиск производился в папках, заданных по умолчанию директивой path.

[DllOverrides]
"commdlg" = "builtin, native"
"comdlg32" = "builtin, native"
Благодаря этой секции мы можем задать очередность обращения к библиотекам. Если у нас есть более новые версии или используются библиотеки уже установленного Windows, то есть возможность использовать именно их, а не предлагаемые wine. Но желательно оставлять эту секцию неизменной во избежание проблем с запуском эмулятора и системных сбоев.
Далее идет настройка эмуляции графического интерфейса wine.

[x11drv]
"PrivateColorMap" = "N"
Эта опция включает использование карты цветов, созданной самой wine.
"PerfectGraphics" = "Y"
"ScreenDepth" = "24"
Здесь мы устанавливаем глубину цвета, поддерживаемую вашим монитором и видеокартой. Лучше всего выбирать ту, которая стоит в настройках иксов.
"Managed" = "Y"
Данная функция предоставляет вашему оконному менеджеру управлять окнами, созданными wine.
"Desktop" = "800x600"
Здесь устанавливаем разрешение вашего виртуального десктопа.
Далее идет управление видеопамятью.
"DXGrab" = "Y"
Эта опция позволяет захват событий, связанных с изменением состояния мыши средствами встроенных библиотек DirectX.
"DesktopDoubleBuffered" = "Y"
Лучше всего включить поддержку двойной буферизации экрана. Вдруг нам захочется попробовать запустить приложения, использующие библиотеки openGL.
Оставим остальные настройки по умолчанию.

[Fonts]
Переходим к секции шрифтов. В этой секции мы можем добавить шрифты, к которым привыкли в Windows. Все они прекрасно портируются в wine путем добавления нескольких строк. Если вы захотите добавить шрифт, то можете для начала воспользоваться библиотекой шрифтов, предоставленной в дистрибутиве эмулятора. Если же вам их число покажется маленьким, то, пожалуйста, добавляйте свои! Но не забывайте, что проблем у вас с их установкой не будет при перестановке кодировки по умолчанию на win1251. Но для этого вам придется почитать документацию по грамотной кириллизации Linux.

[serialports]
"Com1" = "/dev/ttyS0"
"Com2" = "/dev/ttyS1"
"Com3" = "/dev/ttyS2"
"Com4" = "/dev/ttyS3"
Здесь, как вы видите, настройки серийных портов. Это для того, чтобы иметь доступ к устройствам, подключенным к ним непосредственно из wine.

[parallelports]
"Lpt1" = "/dev/lp0"
То же для параллельных портов, для работы с принтерами, ключами к программам автоматизированного проектирования, наконец.

[ppdev]
А это секция настройки устройств, которые подключены к компьютеру иными способами, не предусмотренными в wine и для установки обращений к портам ввода-вывода, позволяющих контактирование с устройством.

[spooler]
"FILE:" = "tmp.ps"
"LPT1:" = "|lpr"
Секция, где заданы настройки создания временных файлов, промежуточных измерений, вычислений.

[registry]
В этой секции заданы настройки работы с реестром. Заданы имена файлов, которые представляют реестр, заданы настройки автосохранения при длительном изменении реестра средствами его конфигурирования.

[Tweak.Layout]
"WineLook" = "Win95"
Здесь задаются настройки внешнего вида рабочего стола wine. Предположим, что нас замучила ностальгия по временам windows 3.1. Не проблема! Несколько метких нажатий на клавиши, и вот перед нами графический интерфейс старых добрых окошек.

[WinMM]
"Drivers" = "wineoss.drv"
"WaveMapper" = "msacm.drv"
"MidiMapper" = "midimap.drv"
Последняя и самая интересная секция: указание имен драйверов для переназначения ввода-вывода, для работы миди-устройств, для работы программных синтезаторов таблиц и вообще для всего, что придумаете, хоть для устройств дистанционного управления вашим любимым виндовым winamp’ом. Хотя Linux’овые плейеры круче:).
Wine мы установили, настроили — давайте запускать программы!

Запуск приложений
И вот, наконец, тот момент, которого мы так долго ждали, — запуск приложений.
Когда мы запускаем приложение через wine, мы можем сделать это несколькими способами.
Давайте будем запускать калькулятор.
wine calc

wine calc.exe

Это первый способ запуска приложений. Но не стоит забывать, что все приложения мы так не запустим, так как эмулятор их не сможет найти, а для этой программы мы при настройке установили директорию, в которой она может находиться, c:\\windows\\
Второй способ запуска приложений — это запуск с указанием полного пути к ним в двух форматах: в формате Windows с учетом настроек в файле конфигурации и в формате Unix-систем, то есть сразу, без обходных путей, без использования средств поиска, грубой консольной силой.
wine c:\\windows\\calc.exe; (использование windows-имени)

wine /usr/windows/calc.exe; (использование unix-имени)

Необходимо отметить, что для поддержки параметров исполняемых файлов нужно обязательно использовать полное имя файла, то есть путь и сам файл.

Заключение
Но, увы, не все программы можно запустить с использованием эмулятора. Многие из них могут привести к системным сбоям. Сбои возможны при использовании в программах неподдерживаемых прерываний, при использовании системных вызовов. Wine не может предсказать все, на что способен гений программистов, разрабатывающих программное обеспечение для компьютера. И так как wine не является коммерческим продуктом, его разработчики работают на собственном интересе, они выращивают, модернизируют свой продукт и предоставляют его пользователю.
Если же вдруг произойдет сбой в программе, то произойдет автоматическая загрузка отладчика, с помощью которого вы сможете узнать, по какой причине произошел этот сбой, и получить возможность его исправить либо модернизировав программный код, либо установив недостающие библиотеки.

Не стоит забывать, что, когда вы используете wine, вы подвержены вирусам, написанным для Windows. И на фоне этого может разрушиться неприступность вашей операционной системы. Так что старайтесь не давать возможности Windows-приложениям соприкасаться с важной для вас информацией или вмешиваться в работу Linux’а. Каждое запущенное приложение в противном случае будет нести потенциальную опасность и будет выбивать кирпичики из вашей крепости, несущей гордое название Linux.

Интернет:
Большое количество информации будет доступно вам с ресурсов WineHQ, расположенных на http://www.winehq.com/. Там вы найдете разнообразные путеводители по миру wine, сообщения об ошибках, способы их исправления и многое другое. Этот сайт должен стать опорным пунктом, начальной точкой, от которой начнется ваше углубленное знакомство с wine.
ЧАВО:
Ответы на Часто Задаваемые Вопросы вы сможете найти на http://www.winehq.com/FAQ. Также вам доступны группы новостей, из которых вы почерпнете новую информацию об этом эмуляторе, news://comp.emulators.ms-windows.wine/
IRC:
Также помощь в работе с программой вам будет оказана на канале #WineHQ сервера irc.openprojects.net.

 WineX.
  the_reaver. Источник - info-reaver.narod.ru.

Сейчас многие говорят, что есть программа, которая может запускать все directх игры. Многие в этом на сто процентов уверены и уверяют остальных. Конечно, многие играют в разные игры, и в общем счёте процент набирается. На сайте разработчика список игр занимает 20 страниц в браузере.

Итак, что есть wineX - это простой wine с новыми функциями. Но есть какая-то секретность вокруг этого: ни одного нормального файла (tar.gz) не зарелизено, качать можно только по cvs, а если хотите пакет для своей системы - заплатите 5$ за какой-то спам - и получите ваши файлы. Но я против таких методов и идейно против разработчиков,так что winex (tar.gz) можно скачать с моего сайта (раздел программы). Но вернемся к разработчикам - по-моему, они что-то утаивают (системные библиотеки ? ), и этого что-то нет в бесплатной версии, но ничего - ведётся расследование.

Эмулятор наш всё ещё в альфа версии, честно говоря он всегда будет альфа, до тех пор пока не откроют
исходники кое-какой ОС. Не думайте, что вы сможете играть в новейшие игры. Но в свои любимые - есть шанс.
Скачали, распаковали, настроили 3Д, и мы готовы устанавливать - всё просто :

./configure
make depend && make

теперь пойдите заварите кофе =) или если у вас слабая машина - сделайте генеральную уборку во всей квартире =)
ок? сделали кофе/уборку дальше набираем

make install &&
mkdir -p $HOME/.transgaming/c_drive/windows/system32

и запускаем инсталляционный скрипт (только из основной директории, где configure и Makefile)

tools/wineinstall

на вопрос о директории отвечаем $HOME/.transgaming/ , он установит реестр - и всё - можно играть!

Было проведено расследование. Все говорили, что различия между платной и бесплатной версией только в работе с оригинальными дисками. Но у меня были сомнения. Неожиданно у меня появилаcь платная версия, чему я несказанно обрадовался. Естественно, она уже лежит на сайте. Линка нет но я скажу, что это лежит в директории soft, имя файла - winex-2.01.tar.rar . Качайте на здоровье! (Примечание: уже появилась новая версия - wineX3.tar.gz). Это собранный winex. С этим winex я играю в warcraft3, maxpayne, couner-strike и другие игры.

Немного опишу установку:

1. Все распаковывается в какую-нибудь директорию ( далее подразумевается /opt/winex ).
2. Редактируем файлик usr/bin/winex :

export INSTALLDIR=/opt/winex/usr/lib/transgaming
export WINEPREFIX="/opt/winex/usr/lib/transgaming/.transgaming"

3. Редактируем файлик /opt/winex/usr/lib/transgaming/.transgaming/config

[Drive C]
"Path" = "/opt/winex/usr/lib/transgaming/.transgaming/c_drive/"

Если надо, измените директорию, просто переместив ее в другое место и создав на нее ссылку с тем же именем.
Эта директория - ваш диск (в маздае). Туда будут устанавливаться по умолчанию все игры.

4. Пишем в конец файла ~/.bash_profile

alias winex='/opt/winex/usr/bin/winex'

Все, можно ставить игры и играть. Но проблемы с русским! Не беда, в файле /opt/winex/usr/lib/transgaming/.transgaming/config

ставим следущие строки, как здесь написано:

[fonts]
"Resolution" = "96"
"Default" = "-cronyx-heveltica-"
"DefaultFixed" = "fixed";
"DefaultSerif" = "-cronyx-times-";
"DefaultSansSerif" = "-cronyx-helvetica-";

[FontPatterns]
"Pattern0" = "-cronyx-times*"
"Pattern1" = "-cronyx-helvetica*"
"Pattern2" = "-cronyx-courier*"
"Pattern3" = "-cronyx-fixed*"

С русским проблем нет. Теперь немного о самих играх. Надо играть или под рутом или сменить рекурсивно владельца директории маздайного диска. Еще прикол : winex эмулирует DirectX7.0, но некоторые игры для DirectX8 нормально работают. Могут быть проблемы с самим winex - это зависит от дистрибутива. Яркий пример - в suse постоянно падает, в моем reaver linux отлично работает (видимо потому, что в моем дистрибутиве нет лишнего мусора). И не ставьте последнюю Mesa для Х-сервера версией ниже 4.2 .

Есть некоторые тонкости при установке. Описываю три игры:

MaxPayne
Если будет вылетать при загрузке уровня - запускайте с ключом -disable3dpreloads
например :

winex MaxPayne.exe -- -disable3dpreloads

Counter-Strike и Half-Life
Играть на opengl. Запускать первый раз с ключами -gl -gldrv Default .
Можно также поставить это в настройках. Игра трубует 16-битного цвета.
При создании сервера в cs - если играете не в полноэкранном режиме, он не стартанет сервер, пока не нажмете done в предпоследнем открытом окне игры.

Warcraft3 :
Установка должно выглядеть так :
wine -winver win98 install.exe
на другой версии могут быть проблемы
чтобы он не вылетал в директории, где вы его установили, переименуйте папку Movies в что-нибудь

mv Movies bak.Movies

И все будет без проблем.

Я теперь не могу оторваться от игр:)
Все ждем winex 3.0 - если он у меня появится, то сразу выложу на сайте.

 Wine.
  Grigory Bakunov, 27.12.2002.

Получение и установка.

Так как среда эмуляции Wine находится в стадии разработки, стоит всегда устанавливать её последнюю версию. Для этого больше всего подходит получение и обновление исходных текстов посредством CVS.

Создадим папку для работы с исходными текстами Wine.
% mkdir ~/wine-sources

Внимание: для корректной сборки wine необходимо порядка 100M пространства на диске.

Получим wine из CVS.
% cd ~/wine-sources
% export CVSROOT=:pserver:cvscvs.winehq.com:/home/wine
% cvs login\

В качестве пароля использовано слово "cvs" (маленькими буквами, без кавычек)
% cvs -z3 checkout wine

В дальнейшем для получения самых свежих исходных текстов wine будет достаточно просто выполнить команды.

% cd ~/wine-sources/wine
% cvs -z3 update -AdP

Создадим рабочую копию wine.
% cp -r wine wine-work

Зададим параметры для сборки. К сожалению, стандартный метод сборки wine требует привелегий суперпользователя.

% cd wine-work
% vi tools/wineinstall

находим строку, начинающуюся с CONFARGS=, и после вписываем в нее нужные параметры сборки. В нашем случае строка будет выглядеть так:

CONFARGS="--enable-opengl --disable-debug --disable-trace"

То есть, "включить поддержку opengl и выключить вывод отладочных сообщений."

Внимание: перед сборкой убедитесь, что пакет wine в системе не установлен.

Запуск сборки

% su

Введите пароль суперпользователя.
% ./tools/wineinstall

Процесс сборки

Купить пирожные, кофе, сигареты, потреблять их и ждать окончания сборки.
На все вопросы отвечать решительным нажатием enter.

Скопировать начальные настройки в домашнюю папку.
% cp -r /root/.wine /home/vasya/.wine
% chown vasya:users /home/vasya -R

Позволить всем пользователям читать и писать папку /c для работы с windows программами.
% chown a+wr /c -R

Собственно установка завершена.

Запуск программ

Запуск программ windows осушествляется вводом команды
% wine <имя_программы>

где <имя_программы> указывает на запускаемую программу. Например:
% wine setup.exe

или
% wine sol.exe

Обратите внимание что при неизмененной конфигурации wine доступны только программы лежашие в папках /c, /mnt/cdrom, /mnt/floppy,

Дополнения

Сушествует клон wine, ориентированный на работу с 3D играми, содержаший также реализацию библиотеки DirectX8. Получение его выглядит так:

% cd ~/wine-sources
% export CVSROOT=:pserver:anonymouscvs.winex.sourceforge.net:/cvsroot/winex
% cvs login

В качестве пароля нужно просто нажать enter
% cvs -z3 co wineX

Для оптимизации работы OpenGL предлагается внести следующие изменения в файле dlls/opengl32/make_opengl

  • заменить gen_thread_safe=1 на **gen_thread_safe=0*
  • заменить ext_prefix="func_" на ext_prefix=""
  • заменить gen_traces=1 на gen_traces=0

Также для повышения производительности можно перед этапом сборки (запуска ./tools/wineinstall) выполнить команду
export CFLAGS="-O2 -mcpu=i386 -march=i686"

 Настройка шрифтов в Wine и WineX.
  Opennet.ru, 26.01.2003.
Date: Sat, 16 Nov 2002 20:20:47 +0500
From: Tolya Borisenkov <[email protected]>
Newsgroups: fido7.ru.linux
Subject: Настройка шрифтов в Wine и WineX

> Вот скачал сабж из исходников... собpал... запустился Winamp,
> flash-мультики типа масяня :))
> только шpифты плохо отобpажаются... где что подкpутить?

Все в конфиге wine по поводу фонтов
[fonts]
;Read documentation/fonts before adding aliases
;See a couple of examples for russian users below
;"Resolution" = "96"
;"Default" = "-adobe-helvetica-"
;"DefaultFixed" = "fixed"
;"DefaultSerif" = "-adobe-times-"
;"DefaultSansSerif" = "-adobe-helvetica-"

;; default TrueType fonts with russian koi8-r encoding
"Default" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultFixed" = "-monotype-courier new-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSerif" = "-monotype-times new roman-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSansSerif" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
;; default cyrillic bitmap X fonts
;"Default" = "-cronyx-helvetica-"
;"DefaultFixed" = "fixed"
;"DefaultSerif" = "-cronyx-times-"
;"DefaultSansSerif" = "-cronyx-helvetica-"