Установка Steam, HL и CS на Linux

Что нам предстоит сделать

  1. Скачать и установить последнюю версию Wine CVS.
  2. Установить DCOM98.
  3. Установить IE6.
  4. Установить шрифты.
  5. Сконфигурировать Wine.
  6. Установить Half-Life.
  7. Установить Steam.
  8. Скорректировать конфигурационные файлы CS.
  9. Играем!

1. Wine @ CVS

Внимание! По идее, всё описанное в этом руководстве должно работать с любой версией Wine старше wine-20031610, однако автором использовалась исключительно CVS-версия.

Прежде всего, нам нужно достать wine (!). Отправляемся в CVS-репозитарий за самой свежей версией:

[console] $ export CVSROOT=:pserver:cvs@cvs.winehq.com:/home/wine
$ cvs login [/console]

Там от вас потребуют пароль, который состоит из слова «cvs», после чего можно начинать собственно закачку:

[console] $cvs -z3 checkout wine [/console]

Приступаем к сборке wine:

[console] $ cd wine
$ ./configure --enable-debug --enable-trace
$ make depend && make
$ su -c «make install» [/console]

Ну, вроде можно пользоваться wine? Ай-яй-яй, а про конфигурационные-то файлы мы и забыли! Желающие могут попытаться написать их самостоятельно, а мы отправимся за набором winecfg вот по этому адресу: http://sourceforge.net/projects/winecfg/

Переписываем свежеполученный каталог dotwine поверх .wine в своём домашнем каталоге:

[console] $ mv /[dirs]/dotwine ~/.wine [/console]

Всё, вы получили благополучно установленный Wine. В принципе, собирать программу можно и без --enable-debug и --enable-trace, заменив их на --disable-debug и --disable-trace соответственно, что может дать некоторый прирост в скорости работы. Однако имейте ввиду, что в этом случае при появлении каких-либо проблем выявить их природу будет гораздо сложнее.

Справившись с данным шагом, можно переходить к следующему — к установке dcom98.

2. Установка DCOM98

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

[console] $ cp ~/.wine /config ~/.wine/config.orig [/console]

и избавить себя тем самым от лишней головной боли. Теперь подправьте секцию [DllOverrides] конфигурационного файла так, чтобы она выглядела следующим образом:

[console] [DllOverrides]
«mshtml» = «native»
; For ie6
«*comctl32» = «builtin»
; For Outlook97
«mapi» = «native, builtin»
«mapi32» = «native, builtin»
; Native dlls needed for various parts of the install
«ole32» = «native, builtin»
«compobj» = «native, builtin»
«ole2» = «native, builtin»
«ole2nls» = «native, builtin»
«ole2conv» = «native, builtin»
«ole2prox» = «native, builtin»
«ole2thk» = «native, builtin»
«storage» = «native, builtin»
«olepro32» = «native, builtin» «rpcrt4» = «native, builtin»
«oleaut32» = «native, builtin»
«msvcrt» = «native, builtin»
«wininet» = «native, builtin»
; for the ie runonce
«setupapi» = «native, builtin»
«devenum» = «native, builtin»
«quartz» = «native, builtin»
«urlmon» = «native»
«shdocvw» = «native, builtin»
«jscript» = «native, builtin»
«wintrust» = «native, builtin»
«shlwapi» = «native, builtin»
«secur32» = «native, builtin»
«crypt32» = «native, builtin»
«ddraw» = «native, builtin»
; allow launching user.exe (for Remedy)
«*user.exe» = «native, builtin»
; default for all other dlls
«*» = «builtin, native» [/console]

На данном этапе у вас есть два выбора: либо довериться автору и взять этот файл, либо самостоятельно отыскать dcom98 на сайте Microsoft. Да, обязательно убедитесь, что версия Windows в Wine установлена в win98. Теперь запускаем

[console] $ WINEDLLOVERRIDES="ole32=n" wine dcom98.exe [/console]

Компоненты DCOM98 должны тихо-смирно установиться.

3. Установка IE6

Пришло время заняться установкой IE6. Возьмите установочный пакет IE6 sp1 с сайта Microsoft и выполните команду

[console] $ wine ie6setup.exe [/console]

Тип установки — «Выборочная» (Custom Install), из предлагаемых для установки компонентов следует отметить только браузер (browser) и поддержку vbscript (vbscript support) (ни в коем случае НЕ УСТАНАВЛИВАЙТЕ никакие ШРИФТЫ). Вы получите сообщение об ошибке (просто нажмите ОК) и уведомление о том, что «exception pack wasn`t installed».

Вы только что установили «ключевой компонент операционной системы», а он, в свою очередь, установил несколько библиотек Windows в вашем каталоге .wine/fake_windows. Выполните команду

[console] $ wine wineboot [/console]

чтобы перезагрузить библиотеки wine (аналогично загрузке Windows). Если до этого момента всё у вас прошло без проблем, то сейчас самое время сделать резервную копию каталога .wine:

[console] $ cp -R .wine/ .winebackup/ [/console]

Подправленный нами на втором шаге конфигурационный файл Wine утратил свою актуальностью, поэтому мы возвратим его к исходному состоянию:

[console] $ rm .wine/config
$ cp .wine/config.orig .wine/config [/console]

Займемся теперь шрифтами.

4. Установка шрифтов

Скачать шрифты Windows и найти руководство по их установке под Linux можно здесь: http://avi.alkalay.net/software/msfonts/

Если вы не испытываете желания устанавливать шрифты в систему глобально, то просто скопируйте их в каталог .wine/fake_windows/Windows/Fonts.

Для корректного отображения кнопок максимизации и минимизации окна в Steam скачайте Marlett.ttf и скопируйте его во всё тот же каталог .wine/fake_windows/Windows/Fonts (http://www.uq.net.au/~zziwilki/marletts.htm)

Накачавшись шрифтов, снова перезапускаем Windows (просто на всякий пожарный):

[console] $ wine wineboot [/console]

Ну, наконец-то мы можем заняться собственно ЭТИМ.

5. Настройка Wine

Вот вроде бы и пришло время вставить диск с игрой и начать установку… да не тут-то было, сначала давайте приведём в надлежащий вид конфигурационный файл Wine. Для вашего удобства автор предоставил свой конфигурационный файл, в котором есть все-все необходимые твики. Впрочем, сейчас мы пробежимся по ним на тот случай, если вам вдруг захочется поковыряться самостоятельно. Для ленивых (в исходном тексте — занятых) читателей: просто скопируйте упомянутый выше файл в ~/.wine/config и переходите к разделу, посвящённому установке игры.

Для настойчивых: ну надо же, есть еще порох в пороховницах и ягоды в ягодицах, т.е. остались еще люди, которые могут чего-то сами настроить :)

В конфигурационном файле Wine вы найдёте секцию под названием [AppDefaultsIEXPLORE.EXEDllOverrides]. Скопируйте её и обзовите [AppDefaultsSteam.exeDllOverrides].

Теперь вернитесь в DllOverrides, принадлежащие IEXPLORE.EXE и добавьте такую сточку:

[console] «mshtml» = «native» [/console]

Если забыть эту строку, IE6, вместо того, чтобы отображать страницы, будет пытаться их скачать. Думается, это не совсем то, что нам нужно.

Теперь добавьте следующие строки в DllOverrides, принадлежащие Steam.exe:

[console] «shdocvw» = «native, builtin»
«shlwapi» = «native, builtin» [/console]

Если не сделать этого, то вы сможете насладиться загадочными сообщениями об ошибках при попытке запустить Steam.

Создайте секцию для исполняемого файла Half-Life:

[console] [AppDefaultshl.exeDllOverrides]
«shdocvw» = «native, builtin»
«shlwapi» = «native, builtin» [/console]

В противном случае Half-Life будет просто валять дурака вместо того, чтобы работать (невероятно, но факт).

Теперь конфигурационный файл Wine выглядит примерно так, как и должен. Если ваши собственные настройки не дают желаемого результата, загляните в мой файл.

Да, чуть не забыл. У меня были проблемы с запуском Half-Life в полноэкранном режиме, так что вы можете попробовать запустить его в окне. Добавьте такую секцию после DllOverrides для hl.exe:

[console] [AppDefaultshl.exex11drv]
«Desktop» = «800×600»
«DXGrab» = «Y» [/console]

Размер окна можно установить по своему усмотрению.

6. Установка Half-Life

Устанавливаем игру. Смонтируйте компакт-диск с игрой и скомандуйте:

[console] $ wine /mnt/cdrom/Setup.exe [/console]

Здесь /mnt/cdrom — точка монтирования CD-ROM в вашем конкретном случае. Ничего сложного, не так ли? Закончив установку, переходите к следующему шагу.

7. Установка Steam

Теперь качаем Steam CS installer (называется steaminstall_cs.exe). Найти его можно на любом приличном файловом сервер игры.

Запускаем программу установки:

[console] $ wine steaminstall_cs.exe [/console]

Установка должна пройти нормально, и после того, как она завершится и потратит ваше время «обновляя» Steam (она сожрала подозрительно мало трафика), запустится Steam. Создайте учётную запись или пройдите авторизацию и добавьте Counter-Strike в ваш список игр. ВНИМАНИЕ! Если вам не дадут клавиатурного фокуса (а 99% времени вы будете сидеть без него), то кликните правой кнопкой мыши на поле ввода и выберите любую опцию (cut/copy/paste). Престо: фокус ввода с клавиатуры. (На всякий случай поясню: речь идёт о том, что курсор клавиатуры должен быть в окне Steam и все нажатия клавиш должны идти именно туда).

Если всё прошло успешно, Steam должен обнаружить существующую инсталляцию Half-Life и обновить её. На машине автора Steam не работал без предустановленного Half-Life (хотя по идее должен был). Почему? Не спрашивайте :)

Теперь, когда все игры успешно установили себя, попробуйте соединиться с каким-нибудь сервером. Игра может упасть и вылететь, может просто повиснуть; в последнем случае активизируйте консоль или откройте свободную TTY и скомандуйте:

[console] $ killall wine [/console]

или даже

[console] $ killall -9 wine [/console]

В новых версиях:

[console] $ killall wine-pthread [/console]

или

[console] $ killall -9 wine-pthread [/console]

Это «сольёт» Steam, а мы, тем временем, сможем немного подправить конфигурационные файлы Counter-Strike.

8. Правка конфигурационных файлов CS

Похоже, Counter-Strike бажит на MODT-запросах. С разной степенью точности можно предполагать, что баг проявляется при html-выводе, однако думается, что лучше запретить MODT целиком. Перейдите в каталог, в котором у вас установлен Steam. Оттуда переместитесь в ./SteamApps/[youremail]/counter-strike/cstrike и удалите файл custom.hpk, если таковой существует:

[console] $ rm custom.hpk [/console]

Затем задайте html-файлу «с приветом» доступ только-для-чтения:

[console] $ chmod 400 modt_templ.html [/console]

Наконец, откройте config.cfg вашим любимым текстовым редактором (vim, nano, pico, emacs и т.д.) и добавьте строку

[console] «hpk_maxsize» «0» [/console]

Ошибка должна исчезнуть.

9. Играем

Думаю этому вас учить не нужно. Go-Go-Go!

vifsla (оригинал)