
Astra Linux - это дистрибутив основанный на пакетной базе Debian и развиваемый Российским разработчиком Astra Team. Данный дистрибутив внедряется как альтернатива Windows.
В последнее время, было довольно много вопросов о том, как приноровить дистрибутив Astra Linux к играм. И вообще возможно ли это?
Ответ очевиден: Astra Linux, как и любой дистрибутив можно использовать для игр. Однако, для этого понадобиться обновить и установить некоторые компоненты. Для этого, была проведена огромная работа над построением библиотек, большинство из которых, были взяты из официальной базы исходных кодов Debian. Некоторые библиотеки пришлось изменить, для того, чтоб они, могли скомпилироваться в среде Debian 10.
Всё, что нужно иметь под рукой: (желательно) "чистый" дистрибутив Astra Linux 1.7.X (недоступен для физических лиц, используется glibc 2.28 и, именно, на данной версии glibc были построены все необходимые компоненты), стабильное интернет соединение, права суперпользователя (root).
ВНИМАНИЕ!!! Все, нижеприведенные действия, вы, выполняете на свой страх и риск! Обновление Mesa, это ваше личное желание, автор данной статьи, за вашу невнимательность никакой ответственности не несет! Внимательно следите за тем, что предлагается УДАЛИТЬ! Ни в коем случае не соглашаемся, так как, это может привести к неработоспособности дистрибутива! Если возникнут какие-либо вопросы, напишите нам в ВК или Telegram.
Astra Linux - x64 дистрибутив. Поэтому, самым первым и самым важным шагом будет добавление i386 библиотек:
sudo apt install ia32-libs
Далее, необходимо, скачать и установить пакет ключей Debian:
- wget http://ftp.ru.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2019.1+deb10u1_all.deb
- sudo dpkg -i ./debian-archive-keyring_2019.1+deb10u1_all.deb
Открываем, через текстовый редактор, файл /etc/apt/sources.list и добавляем репозитории Debian 10 в конец файла:
deb http://ftp.debian.org/debian buster main contrib non-free
deb-src http://ftp.debian.org/debian buster main contrib non-free
deb http://ftp.debian.org/debian buster-updates main contrib non-free
deb-src http://ftp.debian.org/debian buster-updates main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free
deb-src http://security.debian.org/ buster/updates main contrib non-free
deb http://ftp.debian.org/debian buster-backports main contrib non-free
deb http://security.debian.org/debian-security buster/updates main
Сохраняем и закрываем редактор. Добавляем репозиторий с Mesa:
- echo 'deb http://download.opensuse.org/repositories/home:/Freeman310/Debian_10/ /' | sudo tee /etc/apt/sources.list.d/home:Freeman310.list
- curl -fsSL https://download.opensuse.org/repositories/home:Freeman310/Debian_10/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_Freeman310.gpg > /dev/null
- sudo apt update
После шагов выше, можно приступать к установке необходимых компонентов и обновлению Mesa:
- sudo apt install libgomp1=10.2.1-6 libitm1=10.2.1-6 libatomic1=10.2.1-6 liblsan0=10.2.1-6 libtsan0=10.2.1-6 libubsan1=10.2.1-6 libquadmath0=10.2.1-6
- sudo apt install libstdc++6=10.2.1-6
- sudo apt install libobjc4=10.2.1-6
- sudo apt install libz3-4=4.8.12-3.1
- sudo apt install libc6=2.28-10+deb10u2 libc6-dev=2.28-10+deb10u2 libc6-i386=2.28-10+deb10u2
- sudo apt install libzstd1=1.5.4+dfsg2-5 libzstd1:i386=1.5.4+dfsg2-5
- sudo apt install llvm-15 clang-15 llvm-14 clang-14
- sudo rm /usr/share/doc/libx11-6/changelog.Debian.gz
- sudo rm /usr/share/doc/libx11-xcb1/changelog.Debian.gz
- sudo apt install libxcb-randr0=1.15-1 libxcb-randr0:i386=1.15-1
- sudo rm /usr/share/doc/libdrm-amdgpu1/changelog.Debian.gz
- sudo apt install libdrm-common=2.4.114-1 libdrm-amdgpu1=2.4.114-1 libdrm-amdgpu1:i386=2.4.114-1 libdrm2=2.4.114-1
- sudo rm /usr/share/doc/libdrm-amdgpu1/changelog.Debian.gz
- sudo apt install libdrm2:i386=2.4.114-1
- sudo apt install libvdpau1=1.5-2 libvdpau1:i386=1.5-2
- sudo apt install libd3dadapter9-mesa=23.1.3-buster1 libegl-mesa0=23.1.3-buster1 libegl1-mesa=23.1.3-buster1 libgbm1=23.1.3-buster1 libgl1-mesa-dri=23.1.3-buster1 libgl1-mesa-glx=23.1.3-buster1 libglapi-mesa=23.1.3-buster1 libgles2-mesa=23.1.3-buster1 libglx-mesa0=23.1.3-buster1 libosmesa6=23.1.3-buster1 libwayland-egl1-mesa=23.1.3-buster1 libxatracker2=23.1.3-buster1 mesa-drm-shim=23.1.3-buster1 mesa-opencl-icd=23.1.3-buster1 mesa-va-drivers=23.1.3-buster1 mesa-vdpau-drivers=23.1.3-buster1 mesa-vulkan-drivers=23.1.3-buster1 libd3dadapter9-mesa:i386=23.1.3-buster1 libegl-mesa0:i386=23.1.3-buster1 libegl1-mesa:i386=23.1.3-buster1 libgbm1:i386=23.1.3-buster1 libgl1-mesa-dri:i386=23.1.3-buster1 libgl1-mesa-glx:i386=23.1.3-buster1 libglapi-mesa:i386=23.1.3-buster1 libgles2-mesa:i386=23.1.3-buster1 libglx-mesa0:i386=23.1.3-buster1 libosmesa6:i386=23.1.3-buster1 libwayland-egl1-mesa:i386=23.1.3-buster1 libxatracker2:i386=23.1.3-buster1 mesa-drm-shim:i386=23.1.3-buster1 mesa-va-drivers:i386=23.1.3-buster1 mesa-vdpau-drivers:i386=23.1.3-buster1 mesa-vulkan-drivers:i386=23.1.3-buster1
- sudo apt install libc6:amd64=2.28-10+deb10u2 libc6:i386=2.28-10+deb10u2 libopengl0=1.6.0-1 libopengl0:i386=1.6.0-1 libgles2=1.6.0-1 libgles2:i386=1.6.0-1 libgl1:i386=1.6.0-1 libgl1=1.6.0-1 libglx0=1.6.0-1 libglx0:i386=1.6.0-1 libglvnd0=1.6.0-1 libglvnd0:i386=1.6.0-1 libegl1:amd64=1.6.0-1 libegl1:i386=1.6.0-1 libgbm1:amd64 libgbm1:i386 libgl1-mesa-dri:amd64 libgl1-mesa-dri:i386 libgl1:amd64 libgl1:i386 xdg-desktop-portal-gtk
- sudo apt install libva2=2.17.0-1 libva2:i386=2.17.0-1 libva-drm2=2.17.0-1 libva-drm2:i386=2.17.0-1 libva-x11-2=2.17.0-1 libva-x11-2:i386=2.17.0-1 libva-wayland2=2.17.0-1
- sudo apt install libaom0=1.0.0.errata1-3 libaom0:i386=1.0.0.errata1-3
После вышеперечисленных команд, проверяем откуда берет библиотеки libvulkan_radeon. Для этого выполняем команду:
ldd /usr/lib/i386-linux-gnu/libvulkan_radeon.so
Выхлоп терминала будет примерно такой:
linux-gate.so.1 (0xf7fc9000)
libLLVM-15.so.1 => /lib32/i386-linux-gnu/libLLVM-15.so.1 (0xefbbf000)
libdrm_amdgpu.so.1 => /lib32/i386-linux-gnu/libdrm_amdgpu.so.1 (0xefbb2000)
libelf.so.1 => /lib32/i386-linux-gnu/libelf.so.1 (0xefb94000)
libdl.so.2 => /lib32/libdl.so.2 (0xefb8e000)
libxcb-dri3.so.0 => /lib32/i386-linux-gnu/libxcb-dri3.so.0 (0xefb88000)
libwayland-client.so.0 => /lib32/i386-linux-gnu/libwayland-client.so.0 (0xefb78000)
libz.so.1 => /lib32/i386-linux-gnu/libz.so.1 (0xefb5a000)
libzstd.so.1 => /lib32/i386-linux-gnu/libzstd.so.1 (0xefa90000)
libexpat.so.1 => /lib32/i386-linux-gnu/libexpat.so.1 (0xefa55000)
libxcb.so.1 => /lib32/i386-linux-gnu/libxcb.so.1 (0xefa26000)
libX11-xcb.so.1 => /lib32/i386-linux-gnu/libX11-xcb.so.1 (0xefa1f000)
libxcb-present.so.0 => /lib32/i386-linux-gnu/libxcb-present.so.0 (0xefa1a000)
libxcb-xfixes.so.0 => /lib32/i386-linux-gnu/libxcb-xfixes.so.0 (0xefa10000)
libxcb-sync.so.1 => /lib32/i386-linux-gnu/libxcb-sync.so.1 (0xefa07000)
libxcb-randr.so.0 => /lib32/i386-linux-gnu/libxcb-randr.so.0 (0xef9f3000)
libxcb-shm.so.0 => /lib32/i386-linux-gnu/libxcb-shm.so.0 (0xef9ee000)
libxshmfence.so.1 => /lib32/i386-linux-gnu/libxshmfence.so.1 (0xef9e9000)
libdrm.so.2 => /lib32/i386-linux-gnu/libdrm.so.2 (0xef9d0000)
libstdc++.so.6 => /lib32/i386-linux-gnu/libstdc++.so.6 (0xef805000)
libm.so.6 => /lib32/libm.so.6 (0xef736000)
libgcc_s.so.1 => /lib32/i386-linux-gnu/libgcc_s.so.1 (0xef717000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xef6f4000)
libc.so.6 => /lib32/libc.so.6 (0xef516000)
libatomic.so.1 => /lib32/i386-linux-gnu/libatomic.so.1 (0xef50c000)
libffi.so.6 => /lib32/i386-linux-gnu/libffi.so.6 (0xef502000)
libedit.so.2 => /lib32/i386-linux-gnu/libedit.so.2 (0xef4cb000)
librt.so.1 => /lib32/librt.so.1 (0xef4c0000)
libtinfo.so.6 => /lib32/i386-linux-gnu/libtinfo.so.6 (0xef497000)
libxml2.so.2 => /lib32/i386-linux-gnu/libxml2.so.2 (0xef2c8000)
/lib/ld-linux.so.2 (0xf7fcb000)
libXau.so.6 => /lib32/i386-linux-gnu/libXau.so.6 (0xef2c3000)
libXdmcp.so.6 => /lib32/i386-linux-gnu/libXdmcp.so.6 (0xef2bb000)
libbsd.so.0 => /lib32/i386-linux-gnu/libbsd.so.0 (0xef29a000)
libicui18n.so.63 => /lib32/i386-linux-gnu/libicui18n.so.63 (0xeef99000)
libicuuc.so.63 => /lib32/i386-linux-gnu/libicuuc.so.63 (0xeedc4000)
libicudata.so.63 => /lib32/i386-linux-gnu/libicudata.so.63 (0xed3d4000)
liblzma.so.5 => /lib32/i386-linux-gnu/liblzma.so.5 (0xed3a8000)
Обратите внимание на то, откуда берутся библиотеки. Именно поэтому много x32 приложений не будут работать. Необходимо переопределить путь к библиотекам. Для этого, открываем Меню=>Настройки=>Панель управления. Выбираем вкладку Система и открываем Переменные окружения:

В появившемся окне жмем на "+":

Переменная: "LD_LIBRARY_PATH"
Значение: "/lib/i386-linux-gnu:/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
Ставим галочку на "Важная системная переменная"

Нажимаем кнопку "Да" и сохраняем изменения кнопкой дискеты:

После этого, перезагружаем ПК.
После перезагрузки, снова выполняем команду:
ldd /usr/lib/i386-linux-gnu/libvulkan_radeon.soВыхлоп должен стать, примерно, следующим:
linux-gate.so.1 (0xf7f7b000)И на последок, устанавливаем inxi:
libLLVM-15.so.1 => /lib/i386-linux-gnu/libLLVM-15.so.1 (0xef800000)
libdrm_amdgpu.so.1 => /lib/i386-linux-gnu/libdrm_amdgpu.so.1 (0xf7f68000)
libelf.so.1 => /lib/i386-linux-gnu/libelf.so.1 (0xf7f4a000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7f44000)
libxcb-dri3.so.0 => /lib/i386-linux-gnu/libxcb-dri3.so.0 (0xf7f3e000)
libwayland-client.so.0 => /lib/i386-linux-gnu/libwayland-client.so.0 (0xf7f2e000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf7f10000)
libzstd.so.1 => /lib/i386-linux-gnu/libzstd.so.1 (0xf7e46000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf7e0b000)
libxcb.so.1 => /lib/i386-linux-gnu/libxcb.so.1 (0xf7ddc000)
libX11-xcb.so.1 => /lib/i386-linux-gnu/libX11-xcb.so.1 (0xf7dd5000)
libxcb-present.so.0 => /lib/i386-linux-gnu/libxcb-present.so.0 (0xf7dd0000)
libxcb-xfixes.so.0 => /lib/i386-linux-gnu/libxcb-xfixes.so.0 (0xf73f6000)
libxcb-sync.so.1 => /lib/i386-linux-gnu/libxcb-sync.so.1 (0xf73ed000)
libxcb-randr.so.0 => /lib/i386-linux-gnu/libxcb-randr.so.0 (0xf73d9000)
libxcb-shm.so.0 => /lib/i386-linux-gnu/libxcb-shm.so.0 (0xf73d4000)
libxshmfence.so.1 => /lib/i386-linux-gnu/libxshmfence.so.1 (0xf73cf000)
libdrm.so.2 => /lib/i386-linux-gnu/libdrm.so.2 (0xf73b6000)
libstdc++.so.6 => /lib/i386-linux-gnu/libstdc++.so.6 (0xef635000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf72b0000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7291000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf726e000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xef457000)
libatomic.so.1 => /lib/i386-linux-gnu/libatomic.so.1 (0xf7264000)
libffi.so.6 => /lib/i386-linux-gnu/libffi.so.6 (0xf725a000)
libedit.so.2 => /lib/i386-linux-gnu/libedit.so.2 (0xf7223000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7218000)
libtinfo.so.6 => /lib/i386-linux-gnu/libtinfo.so.6 (0xef42e000)
libxml2.so.2 => /lib/i386-linux-gnu/libxml2.so.2 (0xef25f000)
/lib/ld-linux.so.2 (0xf7f7d000)
libXau.so.6 => /lib/i386-linux-gnu/libXau.so.6 (0xf7213000)
libXdmcp.so.6 => /lib/i386-linux-gnu/libXdmcp.so.6 (0xf720b000)
libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xef240000)
libicui18n.so.63 => /lib/i386-linux-gnu/libicui18n.so.63 (0xeee00000)
libicuuc.so.63 => /lib/i386-linux-gnu/libicuuc.so.63 (0xeec2b000)
libicudata.so.63 => /lib/i386-linux-gnu/libicudata.so.63 (0xed200000)
liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xef214000)
sudo apt install inxiИ проверяем версию Mesa:
inxi -G

Новая Mesa установилась. Можно удалить репозитории Debian. И, теперь, можно играть в игры!

Данная инструкция будет обновляться по мере обновления компонентов.