#
Запуск Linux Native Half-Life / Counter-Strike на Debian 12 (Bookworm)
Решил установить старую Linux Native версию Half-Life / Counter-Strike на Debian 12. Практически все найденные инструкции оказались устаревшими: рекомендуются пакеты, которых уже нет в современных репозиториях, а некоторые библиотеки давно переименованы.
Вместе с ChatGPT мы решили не искать очередной список зависимостей, а пройти весь путь самостоятельно: последовательно запускать игру, анализировать ошибки динамического загрузчика и устанавливать только действительно необходимые библиотеки.
В результате удалось успешно запустить игру.
##
Система
* Debian 12 Bookworm (amd64)
* GNOME
* Графика AMD
* Linux Native версия Half-Life (32-bit)
---
## Включаем поддержку i386
Код:
sudo dpkg --add-architecture i386
sudo apt update
---
##
Минимальный набор библиотек
Сначала устанавливаем базовые библиотеки:
Код:
sudo apt install \
libc6:i386 \
libstdc++6:i386 \
libfontconfig1:i386 \
libopenal1:i386
После этого запускаем игру.
Если появляется сообщение вида:
Error: libXXXX.so: cannot open shared object file
устанавливаем соответствующий пакет.
В моём случае понадобились:
Код:
sudo apt install \
libcairo2:i386 \
libglib2.0-0:i386 \
libxi6:i386 \
libcups2:i386 \
libxinerama1:i386 \
libxrandr2:i386 \
libxcursor1:i386 \
libxcomposite1:i386 \
libxdamage1:i386
На этом этапе Half-Life успешно запустилась.
---
##
Проверка зависимостей
Очень помогает команда:
Код:
LD_LIBRARY_PATH=$PWD ldd ./hw.so
Она показывает отсутствующие библиотеки.
Например:
libGL.so.1 => not found
или
libopenal.so.1 => not found
После установки нужного пакета ошибка исчезает.
---
## Если библиотека лежит рядом с игрой
Многие библиотеки уже входят в дистрибутив игры.
Чтобы загрузчик их видел, запускайте через штатный скрипт:
или временно задайте путь:
Код:
LD_LIBRARY_PATH=$PWD ./hl_linux
---
##
Старые инструкции больше не подходят
Во многих руководствах встречаются пакеты:
libcurl3
libgcrypt11
libfontconfig
Для Debian 12 они уже неактуальны.
Используйте современные аналоги:
| Старое название | Современный пакет |
| ------------------------- | ------------------------------ |
| libfontconfig | libfontconfig1 |
| libcurl3 | libcurl4 |
| libgcrypt11 | библиотека обычно поставляется вместе с игрой или требует отдельной проверки |
---
## Полезные команды
Посмотреть архитектуру программы:
Посмотреть зависимости ELF:
Проверить отсутствующие библиотеки:
или
Код:
LD_LIBRARY_PATH=$PWD ldd hw.so
---
## Итог
На Debian 12 Linux Native версия Half-Life запускается без Wine, Proton и Steam.
Понадобилось лишь установить современные 32-битные библиотеки, которых нет в базовой системе amd64.
---
##
Благодарность
Эта инструкция появилась благодаря совместному исследованию проблемы с ChatGPT. Вместо использования устаревших списков библиотек мы шаг за шагом анализировали ошибки загрузчика ELF, проверяли зависимости и собирали минимальный рабочий набор пакетов для Debian 12.
Следующим этапом планируем протестировать всё на Debian 13 и подготовить подробную техническую статью о том, как устроены зависимости ELF-приложений, почему возникают ошибки вида `libXXX.so: cannot open shared object file` и как их автоматически анализировать. В рамках этой работы развивается проект **GDI (General Dependency Inspector)** — инструмент для поиска отсутствующих зависимостей и формирования рекомендаций по их установке.