Алоха, мать вашу! Если вы хотите поиграть в нативный для линукса 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.
Android may not be my or your first choice of Linux, but it is without doubt an open source platform that offers both practical and economic benefits to users and industry. So we have both competition, and good representation for open source, in personal computing.
Even though we have only played a small part in that shift, I think it's important for us to recognize that the shift has taken place. So from Ubuntu's perspective, this bug is now closed.
There is a social element to this bug report as well, of course. It served for many as a sort of declaration of intent. But it's better for us to focus our intent on excellence in our own right, rather than our impact on someone else's product. In the (many) years since this bug was filed, we've figured out how to be amazing on the cloud, and I hope soon also how to be amazing for developers on their desktops, and perhaps even for everyday users across that full range of devices. I would rather we find a rallying call that celebrates those insights, and leadership.
It's worth noting that today, if you're into cloud computing, the Microsoft IAAS team are both technically excellent and very focused on having ALL OS's including Linux guests like Ubuntu run extremely well on Azure, making them a pleasure to work with. Perhaps the market shift has played a role in that. Circumstances have changed, institutions have adapted, so should we.
Along those lines, it's good to reflect on how much has changed since 2004, and how fast it's changed. For Ubuntu, our goal remains to deliver fantastic experiences: for developers, for people building out production infrastructure, and for end-users on a range of devices. We are doing all of that in an environment that changes completely every decade. So we have to be willing to make big changes ourselves - in our processes, our practices, our tools, and our relationships. Change this bug status is but a tiny example.
Мой вердикт прост: "Марк, ты идиот!" Как по мне, так даже не надо объяснять почему.