LINUX.ORG.RU
ФорумGames

Оптимальное решение с контейнером для стима

 ,


0

2

Ситуация с линукс-геймингом всё печальнее, всё больше линукс-портов из стима отваливается в актуальных дистрибутивах. LD_PRELOAD и LD_LIBRARY_PATH уже не особо спасают. Например когда нужно подгружать целый glibc древней версии, который уже с большинством компонентов текущей системы не совместим, то наиболее разумным выходом видится запихивание стима целиком в контейнер.

Крайним вариантом представляется виртуалка с какой-нибудь убунтой 20.04, в которой точно всё работает, но не хотелось до такого доходить. Оптимальным решением видится flatpak, он как раз представляет возможность устанавливать рантаймы довольно широкого диапазона версий: от 18.08 до 24.08, а также соответствующих версий mesa (что полезно для некоторых видеокарт, которые на старых версиях работают лучше), которые будут работать параллельно с mesa из системы. В теории конечно звучит хорошо, но практике получается вот так:

$ flatpak run --runtime=org.freedesktop.Platform/x86_64/21.08 com.valvesoftware.Steam 

Traceback (most recent call last):
  File "/app/bin/steam", line 5, in <module>
    from steam_wrapper import main
ModuleNotFoundError: No module named 'steam_wrapper'

ЧЯДНТ? Выходит флатпаковский пакет стима намертво зависимостями прибит к актуальному рантайму? При этом если пытаюсь откатить сам пакет стима согласно этой инструкции, то не вижу там версий младше 23 года, а мне допустим надо 22 года и ниже. Как это побороть или что использовать вместо флатпака с похожим функционалом и гибкостью?

ЗЫ: Просьба не оффтопить протоном, тема именно про нативные версии. Я деньги отдавал именно за линукс-версии, почему я теперь должен лишаться уникального опыта с их пердолингом и эксклюзивных багов нативных портов?

★★★★

Последнее исправление: Radius (всего исправлений: 1)

Например когда нужно подгружать целый glibc древней версии

Ссылку на багрепорт в glibc в студию

Оптимальным решением видится flatpak

Скорее, наиболее неоптимальным, да и решением, как оказалось, оно не является

ЧЯДНТ?

пытаешься использовать flatpak, когда valve специально сделали pressure-vessel (steam linux runtime, включается там же, где и протон) для этих целей, который между прочим на компонентах флетпака и основан. Да, он подгружает системный glibc (т.к иначе пришлось бы тащить драйверы с собой), но если новый glibc не работает - нужно с ним разбираться. Возможно в дистре криво собирают glibc, как это было например с отключением sysv хэшей пару лет назад

mittorn ★★★★★
()
Ответ на: комментарий от anonymous

Если бы оно решало проблему, я бы тут не писал. Но в редких случаях действительно выставление 1.0 legacy помогает, иногда в комплексе с LD_PRELOAD.

Radius ★★★★
() автор топика
Ответ на: комментарий от anonymous

ТС говорит что чему-то там новый libc не нравится, а стимовский конетйнер использует хостовый libc. Если это действительно так, а так может быть во всяких unstable дистрах - надо срочно репортить баг и прыгать на stable пока не исправят

mittorn ★★★★★
()

Могу поделиться своим опытом. У меня нет Steam, игры только из GOG. Для запуска у меня отдельный chroot с текущим (а сейчас — будущим) релизом Debian. Монтируется это всё с помощью bwrap. Несколько старых пакетов взяты из архива, в основном это проблемное, хронически ломающее API говно вроде libssl, libpng и т.п. Недавно перетестировал коллекцию на Debian 13, и в целом всё хорошо. Так что не понимаю, зачем тащить старьё оптом, когда достаточно нескольких небольших библиотек.

нужно подгружать целый glibc древней версии

glibc обратно совместим, ни разу такой необходимости не было ещё.

anonymous
()

Выходит флатпаковский пакет стима намертво зависимостями прибит к актуальному рантайму?

Естественно.

Я деньги отдавал именно за линукс-версии, почему я теперь должен лишаться уникального опыта с их пердолингом и эклюзивных багов нативных портов?

Пинай поддержку.

Как это побороть или что использовать вместо флатпака с похожим функционалом и гибкостью?

Если ничего не помогает, то только виртуалки.

Aceler ★★★★★
()
Ответ на: комментарий от mittorn

Множество фераловских портов отвалилось с обновлением glibc, вот нашел частичное решение https://github.com/ValveSoftware/steam-runtime/issues/613

Но например для многих малопопулярных игр это не помогает, гуглинг выдает 0 информции. Вот и пытаюсь найти себе инструмент, который позволит их запускать.

Radius ★★★★
() автор топика
Ответ на: комментарий от Radius

Feral

Our most recent Linux titles are officially supported on Ubuntu only, and we do not currently have any plans to update games for further compatibility with Steam Deck or its operating system, SteamOS 3.0. If players encounter issues with Feral’s native Linux versions of games on Steam Deck, we recommend playing them via Proton.

Хорошая компания, мне нравится.

/s

anonymous
()
Ответ на: комментарий от Aceler

Естественно.

Это как раз противоестественно, ведь сам стим спроектирован таким образом, что может запускаться практически на любых дистрибутивах, даже очень древних. И гвоздями приколачивать его к ветке 24 года как минимум бред.

Если ничего не помогает, то только виртуалки.

Я думаю чрутнуться то всегда можно, но для этого нужно сделать кучу манипуляций. А если нужно много разных срезов, то повторить эти манипуляции много раз. Флатпак про то же самое, но в нём всё готовое и в удобной обёртке, поэтому концептуально он мне понравился…

Radius ★★★★
() автор топика
Ответ на: комментарий от Radius

Тем не менее, это проблема именно в glibc и репортить нужно туда. На худой конец в дистрибутивы патчи положить, если разрабы совсем упёрлись. Конечно разрабы ССЗБ, что завязались на недокументированную фичу, но в это часть bug compatibility, а glibc должен его обеспечивать.
Кстати, одним из таких дистрибутивов steam runtime и является. Если бы это не была спецефичная проблема для feral, то наверно бы положили туда обход для неё не в отдельную ветку, а везде

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)

Ну это ошибка питона. Я чет не уверен, что в самой платформе питоновская либа в равнтайме стоит:

❯ flatpak enter com.brave.Browser sh
sh-5.2$ python
Python 3.12.8 (main, Nov 10 2011, 15:00:00) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import steam_wrapper
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'steam_wrapper'
>>>
rtxtxtrx ★★
()

Не, флатпак для этого не вариант. Должен бы решать тот же встроенный стимовский рантайм (выбираемый в настройказ), но это не всегда помогает. Например, я так и не понял, как в актуальной системе заставить работать нативный kotor2, но в протоне запускается.
Вот и получается, что те, кто предлагал использовать winapi и wine для нативного софта совсем не поехавшие.

sehellion ★★★★★
()