Translate

понедельник, 10 июня 2013 г.

Half-Life 2 на Slackware Linux x86-64

Алоха, мать вашу! Если вы хотите поиграть в нативный для линукса Half-Life 2 на Slackware x86-64, то эта статейка для вас. Прошу учесть, что нужен будет мультилиб и Half-Life 2 запускался на "current" ветке Slackware64 с последними обновлениями по состоянию на 10 июня 2013 (последнее обновление на тот/этот момент было 6 июня). Итак.

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

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

Заходим в папку с игрой

neko@ASUS-SlackBook:/mnt/Alchemy/Games/hl2$ nano hl2/gameinfo.txt

Нужно изменить строчки

game+mod   hl2/hl2_english.vpk
и
game    |all_source_engine_paths|hl2/hl2_sound_vo_english.vpk

на

game+mod   hl2/hl2_russian.vpk
и
game    |all_source_engine_paths|hl2/hl2_sound_vo_russian.vpk

Пока что запускать рано. Нужно установить Steam Client. Например, отсюда, иначе будет крашиться. Не забудьте скачать обновления, а логигиться необязательно, т.к. необходима только библиотека vguimatsurface.so, которая предоставляется клиентом Steam, и которая нужна будет для запуска Half-Life 2.

Теперь нужно установить сам мультилиб, ня! Есть официальная инструкция, но вот кратенько для раков:
$ rsync -avrh rsync://slackware.org.uk/people/alien/multilib/current/ ~/Work/Slackware/multilib-current/
$ cd ~/Work/Slackware/multilib-current/
$ su
# upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z
# upgradepkg --reinstall --install-new g*.t?z

Мультилиб установлен, теперь:
# ln -s /usr/lib/seamonkey/libnss3.so /usr/lib/libnss3.so
# ln -s /usr/lib/seamonkey/libnssutil3.so /usr/lib/libnssutil3.so
# ln -s /usr/lib/seamonkey/libsmime3.so /usr/lib/libsmime3.so
# ln -s /usr/lib/seamonkey/libplc4.so /usr/lib/libplc4.so
# ln -s /usr/lib/seamonkey/libnspr4.so /usr/lib/libnspr4.so
# ln -s /usr/lib/seamonkey/libplds4.so /usr/lib/libplds4.so


Хер знает зачем игре нужны эти либы, но они нужны. Теперь переходим в директорию с игрой и делаем:
neko@ASUS-SlackBook:/mnt/Alchemy/Games/hl2$ LD_LIBRARY_PATH=bin ldd bin/vguimatsurface.so

Будет выхлоп:
        linux-gate.so.1 (0xffffe000)
        libtier0.so => bin/libtier0.so (0xf752f000)
        libvstdlib.so => bin/libvstdlib.so (0xf7445000)
        libcef.so => bin/libcef.so (0xf4a50000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xf49df000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf4955000)
        libSDL2-2.0.so.0 => bin/libSDL2-2.0.so.0 (0xf4877000)
        libm.so.6 => /lib/libm.so.6 (0xf4835000)
        libdl.so.2 => /lib/libdl.so.2 (0xf4830000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf4746000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf472b000)
        /lib/ld-linux.so.2 (0xf776b000)
        libc.so.6 => /lib/libc.so.6 (0xf459f000)
        librt.so.1 => /lib/librt.so.1 (0xf4596000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xf412e000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xf407f000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xf4072000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xf4050000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xf3f48000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xf3efe000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xf3eb0000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf3d81000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xf3c4b000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xf3c3c000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0xf3b44000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf3b3b000)
        libnss3.so => /usr/lib/libnss3.so (0xf3a46000)
        libnssutil3.so => /usr/lib/libnssutil3.so (0xf3a25000)
        libsmime3.so => /usr/lib/libsmime3.so (0xf3a02000)
        libplc4.so => /usr/lib/libplc4.so (0xf39fd000)
        libnspr4.so => /usr/lib/libnspr4.so (0xf39bd000)
        libz.so.1 => /lib/libz.so.1 (0xf39a7000)
        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xf395d000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xf3932000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xf3921000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xf391c000)
        libcups.so.2 => /usr/lib/libcups.so.2 (0xf38d6000)
        libgcrypt.so.11 => /lib/libgcrypt.so.11 (0xf3853000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xf3838000)
        libbz2.so.1 => /lib/libbz2.so.1 (0xf3826000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xf37ff000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xf37fc000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xf37f2000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xf37e8000)
        libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0xf3755000)
        libicule.so.51 => /usr/lib/libicule.so.51 (0xf3711000)
        libicuuc.so.51 => /usr/lib/libicuuc.so.51 (0xf35c0000)
        libicudata.so.51 => /usr/lib/libicudata.so.51 (0xf2077000)
        libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xf2074000)
        libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xf2070000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xf204f000)
        libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xf1fc8000)
        libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0xf1fc5000)
        libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0xf1fc3000)
        libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xf1fb9000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf1f98000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xf1f95000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf1f8f000)
        libpng14.so.14 => /usr/lib/libpng14.so.14 (0xf1f64000)
        libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xf1dfd000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xf1de2000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xf1dce000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xf1dca000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xf1dc8000)
        libffi.so.6 => /usr/lib/libffi.so.6 (0xf1dc2000)
        libplds4.so => /usr/lib/libplds4.so (0xf1dbd000)
        libssl.so.1 => /lib/libssl.so.1 (0xf1d5a000)
        libcrypto.so.1 => /lib/libcrypto.so.1 (0xf1ba4000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xf1b70000)
        libgpg-error.so.0 => /lib/libgpg-error.so.0 (0xf1b6c000)

Если будет что-нибудь вроде
        libnss3.so => not found
        libnssutil3.so => not found
        libsmime3.so => not found
        libplc4.so => not found
        libnspr4.so => not found

то придётся колупаться. Если no found не будет, то можно начинать играть.

Вот ещё. На Intel HD Graphics будут артефакты, фиолетово-зелёный G-Man, вертолёты с дисками вместо пропеллеров и просто хуёвая графика. Запускать надо будет через NVidia Optimus, вот ссылка для лентяев.

Приятной игры!

P.S. Уж извините, что я спиратил игру, но системы пожертвований у Valve нет, так что пусть катятся к хуям.

P.P.S. Да, я делаю пожертвования проектам Seamonkey и KDE.

Комментариев нет:

Отправить комментарий