Переустановил я со своей многострадальной системы Linux Mint 17 на Linux Mint 20, уж очень давно было пора. Но столкнулся с тем, что не заработал HALF-LIFE 2. На самом деле, не заработало все на движке Source, просто на халфе я это заметил. То есть, после клика по ярлыку ничего не запускалось, ничего не писало.
Чтобы получить хоть какие-то ошибки, запустим через консоль.
Открыть консоль, набрать, если внутри директории с игрой:
./hl2.sh
и должна появиться примерно такая простыня текста:
--- тут все идет по плану ---
SDL video target is 'x11'
SDL video target is 'x11'
This system supports the OpenGL extension GL_EXT_framebuffer_object.
This system supports the OpenGL extension GL_EXT_framebuffer_blit.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample.
This system DOES NOT support the OpenGL extension GL_APPLE_fence.
This system supports the OpenGL extension GL_NV_fence.
This system supports the OpenGL extension GL_ARB_sync.
This system supports the OpenGL extension GL_EXT_draw_buffers2.
This system supports the OpenGL extension GL_EXT_bindable_uniform.
This system DOES NOT support the OpenGL extension GL_APPLE_flush_buffer_range.
This system supports the OpenGL extension GL_ARB_map_buffer_range.
This system supports the OpenGL extension GL_ARB_vertex_buffer_object.
This system supports the OpenGL extension GL_ARB_occlusion_query.
This system DOES NOT support the OpenGL extension GL_APPLE_texture_range.
This system DOES NOT support the OpenGL extension GL_APPLE_client_storage.
This system DOES NOT support the OpenGL extension GL_ARB_uniform_buffer.
This system supports the OpenGL extension GL_ARB_vertex_array_bgra.
This system supports the OpenGL extension GL_EXT_vertex_array_bgra.
This system supports the OpenGL extension GL_ARB_framebuffer_object.
This system DOES NOT support the OpenGL extension GL_GREMEDY_string_marker.
This system supports the OpenGL extension GL_ARB_debug_output.
This system supports the OpenGL extension GL_EXT_direct_state_access.
This system supports the OpenGL extension GL_NV_bindless_texture.
This system DOES NOT support the OpenGL extension GL_AMD_pinned_memory.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample_blit_scaled.
This system supports the OpenGL extension GL_EXT_texture_sRGB_decode.
This system supports the OpenGL extension GL_NVX_gpu_memory_info.
This system DOES NOT support the OpenGL extension GL_ATI_meminfo.
This system supports the OpenGL extension GL_EXT_texture_compression_s3tc.
This system supports the OpenGL extension GL_EXT_texture_compression_dxt1.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt3.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt5.
This system supports the OpenGL extension GLX_EXT_swap_control_tear.
GL_NV_bindless_texture: DISABLED
GL_AMD_pinned_memory: DISABLED
GL_EXT_texture_sRGB_decode: AVAILABLE
--- а тут уже нет ---
failed to dlopen /media/disk/Games/HL2/bin/vguimatsurface.so error=/usr/lib/i386-linux-gnu/libgcrypt.so.20: version `GCRYPT_1.2' not
found (required by /media/disk/Games/HL2/bin/libcef.so)
failed to dlopen vguimatsurface.so error=/usr/lib/i386-linux-gnu/libgcrypt.so.20: version `GCRYPT_1.2' not found (required by /media/disk/Games/HL2/bin/libcef.so)
AppFramework : Unable to load module vguimatsurface.so!
На самом деле, ошибок было намного больше, просто, остальные ошибки решались доустановкой пакетов.
Система такая: ргается на библиотеку, ищем пакет с такой билиотекой, ставим, проверяем, получаем следующую ошибку.
GOTO 0.
Начнем с того, что требуется набор 32-х разрядных библиотек, поэтому ставим:
sudo apt-get install ia32-libs
Для надежности можно поставить Steam, в нем также будет часть необходимых библиотек.
Затем, понадобился пакет libpng12-0_1.2.54-1ubuntu1_i386.deb.
И не запускалось без пакета libgcrypt11_1.5.3-2ubuntu4_i386.deb, вернее, без библиотеки из этого пакета - libgcrypt.so.11.8.2.
Вернее сказать, гре требовалась именно старая версия этой библиотеки.
$ wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_i386.deb
$ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_i386.deb
$ wget http://security.ubuntu.com/ubuntu/pool/main/libg/libgcrypt11/libgcrypt11_1.5.3-2ubuntu4_i386.deb
$ sudo dpkg -i $ sudo dpkg -i libgcrypt11_1.5.3-2ubuntu4_i386.deb
Но этот пакет нельзя просто взять и установить, он больше несовместим, поэтому, необходимо небольшое шаманство:
sudo mkdir /opt/extlibs
Распаковываем *.deb, ищем в нем libgcrypt.so
.
Копируем туда эту библиотеку и делаем ссылку на нее:
sudo ln -s /opt/extlibs/libgcrypt.so.11.8.2 /usr/lib/i386-linux-gnu/libgcrypt.so.11
Такое же колдунство можно произвести с любыми отсутствующими библиотеками.
Игра после этого запустилась.