Steam
Steam egy videójáték digitális terjesztési szolgáltatás a Valve által. A Steam digitális jogkezelést (DRM), matchmaking szervereket, videó streaminget és közösségi hálózati szolgáltatásokat kínál. Ezenkívül biztosítja a felhasználók számára a játékok telepítését és automatikus frissítését, valamint közösségi funkciókat, mint például barátlista és csoportok, felhőalapú mentés, valamint játék közbeni hang- és chatfunkcionalitás.
A Steam kliens nem nyílt forráskódú szoftver, ezért minden felhasználónak el kell fogadnia a Steam Felhasználói Szerződést a szoftver használata előtt, majd általában el kell fogadnia az végfelhasználói licencszerződéseket (EULAs) vagy az használati feltételeket az egyes Steam kliensen keresztül elért szoftverekre vonatkozóan.
A Valve Corporation együttműködött nyílt forráskódú szoftvereket fejlesztő szervezetekkel, például a CodeWeavers-szel (Wine)[1], annak érdekében, hogy zárt forráskódú játékokat is futtatni lehessen nyílt forráskódú operációs rendszereken.
Játékkompatibilitás
A Steam Deck népszerűségének növekedésével az utóbbi években jelentősen bővült a Steam játékok Linuxon való játszhatósága[2]. A játékfejlesztők egyre inkább ösztönözve vannak arra, hogy támogassák a Linuxot. A natív Linux játékokat az áruházban a SteamOS ikon segítségével lehet azonosítani. Azokhoz a játékokhoz, amelyek nem rendelkeznek natív támogatással, a Valve fenntartja a Proton nevű kompatibilitási réteget, amelyet Wine alapokra építettek. Ez integrálva van a kliensbe, és könnyen használható kompatibilitási réteget biztosít Windows-exkluzív játékokhoz a legújabb Linux operációs rendszeren. Azok a felhasználók, akik a stabilitás helyett az élvonalbeli verziókat részesítik előnyben, fontolóra vehetik a Proton aktívan közösség által karbantartott forkját, a Proton-GE-t.
A Proton nyílt forráskódú, ezért forráskódból is felépíthető, azonban erősen ajánlott a Steam kliens által biztosított Proton verziók használata[3]. A Proton minden egyes játékhoz engedélyezhető a tulajdonságai között található Kompatibilitás fül alatt.
A közösség által karbantartott ProtonDB (hasonló a Wine AppDB-hez) figyelemmel kíséri a játékok kompatibilitását a Steam Deckkel / Protonnal és hasonló emulációs eszközökkel a felhasználók visszajelzései alapján.
Előfeltételek
A Steam a legtöbb támogatott játékhoz 32 bites környezetet biztosít, ezért maga a kliens multilib profilt igényel az amd64 operációs rendszeren. Ez azt jelenti, hogy a Gentoo telepítése során, amikor Ön a profilok közül választott, akkor nem a no-multilib opció lett kiválasztva. Ez az előfeltétel figyelmen kívül hagyható, amennyiben a Steam szoftvercsomagot Ön egy chroot környezetben telepíti fel.
A Steam böngésző már nem támogatott 32 bites Linux disztribúciókon, és le van tiltva a Steam kliensben a Store, Community vagy User Profile fülek megtekintésekor[4], így az egyetlen elérhető architektúra a amd64.
Kernel
A Steam elvárja, hogy a /dev/shm, amely kernel tmpfs támogatást igényel, a Steam indítása előtt legyen felcsatolva. A /dev/shm-nek automatikusan kell felcsatolódnia az számítógép bootolása során OpenRC és systemd által, de explicit módon is felcsatolható a /etc/fstab segítségével.
/etc/fstab
# A méret korlátozásához adja hozzá például a size=1G beállítást az opts paraméterhez (ajánlott legalább 2G, az alapértelmezett érték 50%).
# Kérjük, vegye figyelembe, hogy az alacsonyabb beállítások véletlenszerű összeomláshoz vezethetnek a Steam és/vagy a játékok esetében.
#<fs> <mountpoint> <type> <opts> <dump/pass>
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
A következő kernelopciót be kell állítani, különben a Steam nem biztos, hogy elindul, és a következő hibaüzenetet adhatja: "The futex facility returned an unexpected error code."
General architecture-dependent options --->
[*] Provide system calls for 32-bit time_t Search for <code>CONFIG_COMPAT_32BIT_TIME</code> to find this item.
Engedélyezze a felhasználói szintű illesztőprogram-támogatást, amennyiben kontrollertámogatásra van szükség.
Device Drivers ---> Input device support ---> -*- Generic input layer (needed for keyboard, mouse, ...) Search for <code>CONFIG_INPUT</code> to find this item. [*] Miscellaneous devices Search for <code>CONFIG_INPUT_MISC</code> to find this item. ---> <*> User level driver support Search for <code>CONFIG_INPUT_UINPUT</code> to find this item.
Engedélyezze a felhasználói névtér támogatást a játékok Kompatibilitási módban történő indításának támogatásához (például Protonnal):
General setup ---> [*] Namespaces support Search for <code>CONFIG_NAMESPACES</code> to find this item. ---> [*] User namespace Search for <code>CONFIG_USER_NS</code> to find this item.
Telepítés
A Steam telepítő letölti és telepíti a Steam kliensprogramot a felhasználó home könyvtárába. Ez megakadályozza, hogy a Portage kezelje a Steam kliens frissítéseit vagy az általa telepített szoftvereket. A Steam kliens lesz kizárólagosan a felelős a szoftverek telepítéséért és frissítéséért.
Ezen az oldalon az utasítások a szokásos Steam telepítési könyvtárat használják: ~/.local/share/Steam.
Emerge (ajánlott)
A steam-launcher ebuild elérhető a steam-overlay szoftvercsomag-tárolóból, amely a Gentoo elsődleges szoftvercsomag-tárolója a Steam kliens és a Steam-alapú játékok számára. A steam-overlay szoftvercsomag-tároló manuálisan vagy olyan szoftvercsomag-tároló kezelő eszközökkel adható hozzá, mint például a eselect-repository.
Telepítse a app-eselect/eselect-repository és a dev-vcs/git szoftvercsomagokat:
root #
emerge --ask --noreplace app-eselect/eselect-repository dev-vcs/git
Steam szoftvercsomag-tároló hozzáadása:
root #
eselect repository enable steam-overlay
Majd szinkronizáljon kifejezetten a emaint segítségével:
root #
emaint sync -r steam-overlay
vagy
root #
emerge --sync
A Steam szoftvercsomagba beépített Proton futtatókörnyezet miatt a legtöbb szoftverfüggőség 32 bites binárisa szerepel a Steam telepítésében. Néhány rendszer-szoftverfüggőség azonban továbbra is szükséges, de a Portage figyelmeztetni fog ezekre. Ezeket a szoftvercsomagokat hozzá kell adni a /etc/portage/package.use/steam fájlhoz, az abi_x86_32
USE jelölőzászló engedélyezésével. Néhány szükséges módosítás a következőket tartalmazza:
/etc/portage/package.use/steam
app-accessibility/at-spi2-core abi_x86_32
app-arch/bzip2 abi_x86_32
app-arch/lz4 abi_x86_32
app-arch/zstd abi_x86_32
dev-lang/rust-bin abi_x86_32
dev-libs/dbus-glib abi_x86_32
dev-libs/elfutils abi_x86_32
dev-libs/expat abi_x86_32
dev-libs/fribidi abi_x86_32
dev-libs/glib abi_x86_32
dev-libs/gmp abi_x86_32
dev-libs/icu abi_x86_32
dev-libs/libevdev abi_x86_32
dev-libs/libffi abi_x86_32
dev-libs/libgcrypt abi_x86_32
dev-libs/libgpg-error abi_x86_32
dev-libs/libpcre2 abi_x86_32
dev-libs/libtasn1 abi_x86_32
dev-libs/libunistring abi_x86_32
dev-libs/libusb abi_x86_32
dev-libs/libxml2 abi_x86_32
dev-libs/lzo abi_x86_32
dev-libs/nettle abi_x86_32
dev-libs/nspr abi_x86_32
dev-libs/nss abi_x86_32
dev-libs/openssl abi_x86_32
dev-libs/wayland abi_x86_32
gnome-base/librsvg abi_x86_32
gui-libs/libdecor abi_x86_32
llvm-core/llvm abi_x86_32
media-gfx/graphite2 abi_x86_32
media-libs/alsa-lib abi_x86_32
media-libs/flac abi_x86_32
media-libs/fontconfig abi_x86_32
media-libs/freetype abi_x86_32
media-libs/glu abi_x86_32
media-libs/harfbuzz abi_x86_32
media-libs/libepoxy abi_x86_32
media-libs/libglvnd abi_x86_32
media-libs/libjpeg-turbo abi_x86_32
media-libs/libogg abi_x86_32
media-libs/libpng abi_x86_32
media-libs/libpulse abi_x86_32
media-libs/libsdl2 abi_x86_32
media-libs/libsndfile abi_x86_32
media-libs/libva abi_x86_32
media-libs/libvorbis abi_x86_32
media-libs/mesa abi_x86_32
media-libs/openal abi_x86_32
media-libs/opus abi_x86_32
media-libs/tiff abi_x86_32
media-sound/lame abi_x86_32
media-sound/mpg123-base abi_x86_32
media-video/pipewire abi_x86_32
net-dns/c-ares abi_x86_32
net-dns/libidn2 abi_x86_32
net-libs/gnutls abi_x86_32
net-libs/libasyncns abi_x86_32
net-libs/libndp abi_x86_32
net-libs/libpsl abi_x86_32
net-libs/nghttp2 abi_x86_32
net-libs/nghttp3 abi_x86_32
net-misc/curl abi_x86_32
net-misc/networkmanager abi_x86_32
net-print/cups abi_x86_32
sys-apps/dbus abi_x86_32
sys-apps/systemd abi_x86_32
sys-apps/systemd-utils abi_x86_32
sys-apps/util-linux abi_x86_32
sys-devel/clang abi_x86_32
sys-libs/gpm abi_x86_32
sys-libs/libcap abi_x86_32
sys-libs/libudev-compat abi_x86_32
sys-libs/ncurses abi_x86_32
sys-libs/pam abi_x86_32
sys-libs/zlib abi_x86_32
virtual/glu abi_x86_32
virtual/libelf abi_x86_32
virtual/libiconv abi_x86_32
virtual/libintl abi_x86_32
virtual/libudev abi_x86_32
virtual/libusb abi_x86_32
virtual/opengl abi_x86_32
virtual/rust abi_x86_32
x11-libs/cairo abi_x86_32
x11-libs/extest abi_x86_32
x11-libs/gdk-pixbuf abi_x86_32
x11-libs/gtk+ abi_x86_32
x11-libs/gtk+ abi_x86_32
x11-libs/libdrm abi_x86_32
x11-libs/libICE abi_x86_32
x11-libs/libpciaccess abi_x86_32
x11-libs/libSM abi_x86_32
x11-libs/libvdpau abi_x86_32
x11-libs/libX11 abi_x86_32
x11-libs/libXau abi_x86_32
x11-libs/libxcb abi_x86_32
x11-libs/libXcomposite abi_x86_32
x11-libs/libXcursor abi_x86_32
x11-libs/libXdamage abi_x86_32
x11-libs/libXdmcp abi_x86_32
x11-libs/libXext abi_x86_32
x11-libs/libXfixes abi_x86_32
x11-libs/libXft abi_x86_32
x11-libs/libXi abi_x86_32
x11-libs/libXinerama abi_x86_32
x11-libs/libxkbcommon abi_x86_32
x11-libs/libXrandr abi_x86_32
x11-libs/libXrender abi_x86_32
x11-libs/libXScrnSaver abi_x86_32
x11-libs/libxshmfence abi_x86_32
x11-libs/libXtst abi_x86_32
x11-libs/libXxf86vm abi_x86_32
x11-libs/pango abi_x86_32
x11-libs/pixman abi_x86_32
x11-libs/xcb-util-keysyms abi_x86_32
Adja hozzá a steam overlay-t a package.accept_keywords fájlhoz:
/etc/portage/package.accept_keywords/steam
*/*::steam-overlay
games-util/game-device-udev-rules
sys-libs/libudev-compat
Most a Steam használati feltételei elolvashatók a következő helyen: /var/db/repos/steam-overlay/licenses/ValveSteamLicense. Ha egyetért ezekkel a feltételekkel, akkor adja hozzá azokat a portage szoftvercsomag-kezelőhöz:
/etc/portage/package.license/steam
games-util/steam-launcher ValveSteamLicense
Az overlay alapértelmezés szerint engedélyezi a Steam futtatókörnyezetet. Ha kizárólag a Gentoo szotvercsomagokra szeretne támaszkodni, akkor tiltsa le a steamruntime
USE jelölőzászlót. Később használja az esteam segédprogramot a telepített natív Linux játékok átvizsgálására annak érdekében, hogy az azokhoz szükséges további Gentoo szoftvercsomagokat megtalálja. Vegye figyelembe, hogy a Gentoo szoftvercsomagok nem fedik le a teljes futtatókörnyezetet, így néhány játék nem fog működni.
Miután a szoftvercsomag-tárolót hozzáadta, telepítse a steam-launcher ebuild-et az alábbi parancs segítségével:
Az újabb telepített operációs rendszerek valószínűleg körkörös függőségekbe ütköznek, mivel a Steam működéséhez a ABI_X86_32 beállítás szükséges. Ezt könnyen meg lehet oldani, ha követi az alábbi Steam hibaelhárítási szakasz első pontját.
root #
emerge --ask games-util/steam-launcher
Hibaelhárítás
Ha a Steam telepítése sikertelen a ncurses és a gpm körkörös szoftverfüggőségei miatt, akkor próbálja ki a következőt:
root #
USE="-gpm" emerge --ask --oneshot sys-libs/ncurses
root #
emerge --ask games-util/steam-launcher
root #
emerge --ask --oneshot sys-libs/ncurses gpm
Ha a Steam nem települ a körkörös függőségek miatt a harfbuzz és freetype szoftvercsomagokkal, akkor próbálja meg a következőt:
root #
USE="-harfbuzz" emerge --ask --oneshot media-libs/freetype media-libs/sdl2-ttf
root #
emerge --ask games-util/steam-launcher
root #
emerge --ask --oneshot media-libs/freetype media-libs/sdl2-ttf media-libs/harfbuzz
Ha a Steam telepítése sikertelen a sys-apps/systemd-utils és a sys-fs/eudev által okozott puha blokkolás miatt, akkor próbálja meg a következőt:
root #
emerge --ask --oneshot systemd-utils
Flatpak
Egy egyszerű, gyors és tiszta módszer (például a 32 bites szoftverfüggőségek fordítása nem szükséges) a Steam telepítésére a Flatpak szoftvercsomag segítségével, a com.valvesoftware.Steam
, amely elérhető a Flathub weboldalon keresztül, (valamint elérhető a szükséges udev szabályok telepítése a játékkontrollerekhez).
root #
USE="X" emerge --ask sys-apps/flatpak
root #
emerge --ask games-util/game-device-udev-rules
Amint azt a Flatpak leírja, az alkalmazásikonok megjelenítéséhez a GUI menüben a rendszer újraindítása szükséges.
Ezenkívül a Flatpak első alábbi parancsa hibát adhat vissza az alábbi könyvtárakkal kapcsolatban:
/var/lib/flatpak/exports/share
/home/user/.local/share/flatpak/exports/share
Azok "nincsenek az XDG_DATA_DIRS környezeti változó által beállított keresési útvonalban, ezért a Flatpak által telepített alkalmazások nem jelenhetnek meg az asztalon, amíg a munkamenet újra nincs indítva".
Azok létrehozása és hozzáadása az XDG_DATA_DIRS-hez sem működik.user $
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
user $
flatpak install flathub com.valvesoftware.Steam
user $
flatpak run com.valvesoftware.Steam
A Steam frissíti magát, és a fájljait a ~/.var/app/com.valvesoftware.Steam könyvtárba telepíti.
Útmutató
A Steam kézi telepítése nem ajánlott, mivel különféle javítások nem kerülnek automatikusan alkalmazásra[5]. Kérjük Önt, hogy fontolja meg a Steam emerge segítségével történő telepítését a fent leírtak szerint!
Szoftvercsatmag függőségek
A következő szoftvercsomag függőségek elavultak lehetnek, és ellenőrzésre szorulnak. Néhány szoftvercsomag függőséget a Steam futtatókörnyezet tartalmazhat, ebben az esetben a rendszer könyvtárakat nem lesznek használva.
Hozza létre a következő szükséges Steam szoftverfüggőségek listáját:
/etc/portage/sets/steam
# mandatory!
dev-libs/glib:2
dev-libs/libgcrypt
dev-libs/nspr
dev-libs/nss
gnome-base/gconf
gnome-extra/zenity
media-libs/alsa-lib
media-libs/fontconfig
media-libs/freetype:2
media-libs/libjpeg-turbo
media-libs/libogg
media-libs/libpng-compat:1.2
media-libs/libsdl
media-libs/libtheora
media-libs/libvorbis
media-libs/openal
net-misc/curl
net-print/cups
sys-apps/dbus
virtual/libusb:1
virtual/opengl
x11-libs/cairo
x11-libs/gdk-pixbuf
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXScrnSaver
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXi
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/pango
x11-libs/pixman
# optional
media-sound/pulseaudio
net-misc/networkmanager
x11-misc/xdg-user-dirs
Majd futtassa:
root #
emerge --ask --noreplace @steam
Ne futtassa a emerge --unmerge @steam parancsot a Steam eltávolításához, mivel ez az operációs rendszer használhatatlanságát okozhatja. Ehelyett használja a emerge --ask --depclean @steam parancsot ehhez a módszerhez.
USE jelölőzászlók
A szükséges USE jelölőzászlók engedélyezéséhez a Steam szoftverfüggőségekhez amd64 alatt, adja hozzá a következő fájlt:
/etc/portage/package.use/steam
app-arch/bzip2 abi_x86_32
app-arch/zstd abi_x86_32
dev-db/sqlite abi_x86_32
dev-libs/atk abi_x86_32
dev-libs/expat abi_x86_32
dev-libs/fribidi abi_x86_32
dev-libs/glib abi_x86_32
dev-libs/gmp abi_x86_32
dev-libs/icu abi_x86_32
dev-libs/libcroco abi_x86_32
dev-libs/libffi abi_x86_32
dev-libs/libpcre abi_x86_32
dev-libs/libpthread-stubs abi_x86_32
dev-libs/libtasn1 abi_x86_32
dev-libs/libunistring abi_x86_32
dev-libs/libxml2 abi_x86_32
dev-libs/lzo abi_x86_32
dev-libs/nettle abi_x86_32
dev-libs/nspr abi_x86_32
dev-libs/nss abi_x86_32
dev-libs/openssl abi_x86_32
dev-libs/wayland abi_x86_32
dev-util/pkgconfig abi_x86_32
dev-util/wayland-scanner abi_x86_32
gnome-base/librsvg abi_x86_32
llvm-core/llvm abi_x86_32
media-gfx/graphite2 abi_x86_32
media-libs/fontconfig abi_x86_32
media-libs/freetype abi_x86_32
media-libs/harfbuzz abi_x86_32
media-libs/libpng abi_x86_32
media-libs/mesa abi_x86_32
media-libs/openal abi_x86_32
media-libs/tiff abi_x86_32
net-dns/libidn2 abi_x86_32
net-libs/gnutls abi_x86_32
net-misc/curl abi_x86_32
net-nds/openldap abi_x86_32
net-print/cups abi_x86_32
sys-apps/attr abi_x86_32
sys-apps/dbus abi_x86_32
sys-apps/util-linux abi_x86_32
sys-devel/gettext abi_x86_32
sys-fs/udev abi_x86_32
sys-libs/binutils-libs abi_x86_32
sys-libs/gpm abi_x86_32
sys-libs/ncurses abi_x86_32
sys-libs/readline abi_x86_32
sys-libs/zlib abi_x86_32
virtual/libffi abi_x86_32
virtual/libiconv abi_x86_32
virtual/libudev abi_x86_32
virtual/opengl abi_x86_32
virtual/pkgconfig abi_x86_32
x11-libs/cairo abi_x86_32
x11-libs/gdk-pixbuf abi_x86_32
x11-libs/gtk+:2 abi_x86_32
x11-libs/libX11 abi_x86_32
x11-libs/libXScrnSaver abi_x86_32
x11-libs/libXau abi_x86_32
x11-libs/libXcomposite abi_x86_32
x11-libs/libXcursor abi_x86_32
x11-libs/libXdamage abi_x86_32
x11-libs/libXdmcp abi_x86_32
x11-libs/libXext abi_x86_32
x11-libs/libXfixes abi_x86_32
x11-libs/libXft abi_x86_32
x11-libs/libXi abi_x86_32
x11-libs/libXinerama abi_x86_32
x11-libs/libXrandr abi_x86_32
x11-libs/libXrender abi_x86_32
x11-libs/libXxf86vm abi_x86_32
x11-libs/libdrm abi_x86_32
x11-libs/libpciaccess abi_x86_32
x11-libs/libxcb abi_x86_32
x11-libs/libxshmfence abi_x86_32
x11-libs/pango abi_x86_32
x11-libs/pixman abi_x86_32
x11-proto/damageproto abi_x86_32
x11-proto/dri2proto abi_x86_32
x11-proto/dri3proto abi_x86_32
x11-proto/fixesproto abi_x86_32
x11-proto/glproto abi_x86_32
x11-proto/inputproto abi_x86_32
x11-proto/kbproto abi_x86_32
x11-proto/presentproto abi_x86_32
x11-proto/xcb-proto abi_x86_32
x11-proto/xextproto abi_x86_32
x11-proto/xf86bigfontproto abi_x86_32
x11-proto/xf86driproto abi_x86_32
x11-proto/xf86vidmodeproto abi_x86_32
x11-proto/xproto abi_x86_32
# If using proprietary Nvidia drivers, include these as well
media-libs/libglvnd abi_x86_32
x11-drivers/nvidia-drivers abi_x86_32
Az operációs rendszer frissítése:
root #
emerge --ask --changed-use --deep @world
A felhasználók körkörös szoftverfüggőségekre hivatkozó hibát kaphatnak a gpm és az ncurses miatt. Ha ez a helyzet, akkor adja hozzá a
-gpm
értéket a sys-libs/ncurses szoftvercsomaghoz, és frissítse ismét a @world készletet.Alapértelmezett telepítő
Töltse le és bontsa ki a Steam telepítőt:
user $
wget https://repo.steampowered.com/steam/pool/steam/s/steam/steam_1.0.0.78.tar.gz
user $
tar -xvzpf steam_1.0.0.*.tar.gz
Futtassa a Steam telepítőt:
user $
cd steam-launcher
user $
./steam
A ./steam parancs futtatása után libGL hiba jelenhet meg. A megoldásért tekintse meg a Steam/Client troubleshooting leírást.
Ha a Steam kliens összeomlik, akkor próbálja meg futtatni:
user $
./steam -textclient
A Steam futtatása a -textclient
opcióval szükséges lehet minden alkalommal, amikor a kliens frissíteni szeretne.
Telepítse a fent említett Steam telepítőszkriptet:
root #
cp steam /usr/local/bin
A Steam elindítható az alábbi paranccsal:
user $
steam
Alternatív telepítő
A következő telepítési módszer szinte teljesen megegyezik a Default installer telepítési módszerrel, azzal a különbséggel, hogy egy alternatív Steam telepítőszkript van használva.
Töltse le a Steam telepítőt, és bontsa ki a szükséges fájlokat.
user $
wget https://repo.steampowered.com/steam/pool/steam/s/steam/steam_1.0.0.78.tar.gz
user $
tar -xvzf steam_1.0.0.*.tar.gz steam-launcher/bootstraplinux_ubuntu12_32.tar.xz
user $
tar -xvzf steam_1.0.0.*.tar.gz steam-launcher/steam.desktop
Töltse le és futtassa Julian Ospald (hasufell) Steam telepítőszkriptjét:
user $
cd steam-launcher
user $
wget https://gist.githubusercontent.com/hasufell/d02a93eccbe35be7a803/raw/987ea287dc81a60d2eb5fa1bb188eae0a5f1049f/steam
user $
chmod +x steam
user $
./steam
Ha a telepítő szkript törött szimbolikus linkeket hoz létre, amikor Dash-sel futtatják, akkor futtassa a telepítőszkriptet inkább Bash segítségével:
user $
bash ./steam
Chroot
A Steam futtatható egy 64 bites multilib chroot környezetben amd64 architektúrán. A chroot legfőbb előnye, hogy a Steam és annak szoftverfüggőségei izolálva lesznek a gyökérfájlrendszerünktől. A Steam böngésző már nem támogatott 32 bites Linux-disztribúciókon, így csak 64 bites chroot környezet érhető el.[4]
Hozza létre a chroot könyvtárat:
root #
mkdir /usr/local/steam64
root #
cd /usr/local/steam64
Töltse le, majd csomagolja ki a fokozat 3 (stage 3) tömörített fájlt.
root #
wget https://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-openrc/stage3-amd64-openrc-20231022T164658Z.tar.xz
root #
tar xpvf stage3*.tar.xz --xattrs-include='*.*' --numeric-owner
Másolja a DNS-információkat, és gondoskodjon arról, hogy azok világszerte olvashatók legyenek:
root #
cp -L /etc/resolv.conf etc
root #
chmod a+r etc/resolv.conf
Hozza létre az ebuild szoftvercsomag-tároló könyvtárát:
root #
mkdir var/db/repos/gentoo
Csatolja fel a szükséges fájlrendszereket:
root #
mount -t proc /proc proc
root #
mount -R /sys sys
root #
mount -R /dev dev
root #
mount -R /run run
root #
mount -R /var/db/repos/gentoo var/db/repos/gentoo
Chrootoljon linux64 segítségével, és frissítse a környezetet. A linux64 használata nem kötelező az amd64 architektúrán, itt csupán az egységesség kedvéért került alkalmazásra.
root #
linux64 chroot .
root #
env-update && source /etc/profile
root #
export PS1="(chroot) $PS1"
A chroot most már frissítve van és megfelelően be lett állítva. Ajánlott legalább az időzóna beállítása és a hangtámogatás engedélyezése a media-libs/alsa-lib szoftvercsomag telepítésével.
Hozza létre a Steam felhasználót ugyanazzal a UID azonosítóval (általában 1000), mint a helyi felhasználó. A helyi UID meghatározható a id -u parancs futtatásával helyi felhasználóként, a chroot környezeten kívül. Ugyanazon UID használata egyszerűsíti az X szerverhez való hozzáférés biztosítását a chroot környezeten belül.
(chroot) root #
useradd -u <UID> -m -G audio,video steam
Telepítse a Steam szofvert a fent említett telepítési módszerek valamelyikével. A telepítés befejezése után lépjen ki a chroot környezetből:
(chroot) root #
exit
Csatolja le a chroot könyvtárakat:
root #
umount -l proc
root #
umount -l sys
root #
umount -l dev
root #
umount -l run
root #
umount -l var/db/repos/gentoo
Telepítse az xhost alkalmazást, hogy a chroot környezeten belül hozzáférhessen az X szerverhez:
root #
emerge --ask --noreplace x11-apps/xhost
Jelentkezzen ki, majd jelentkezzen be újra. Ez lehetővé teszi, hogy a display manager vagy a xinit feldolgozza a /etc/X11/xinit/xinitrc.d/00-xhost fájlt, és automatikusan engedélyezze az összes helyi kapcsolatot az X szerverhez a helyi UID-tól. Ez nem fog működni, ha a Steam UID eltér a helyi UID-tól. Állítsa be ugyanazt az UID azonosítót a Steam felhasználó létrehozásakor, ahogy azt korábban említettük, vagy ha a Steam felhasználó már létezik, akkor módosítsa a Steam UID azonosítót a usermod -u <UID> steam paranccsal, hogy megfeleljen a helyi UID azonosítónak.
Alternatív megoldásként futtassa a xhost +local: parancsot, hogy engedélyezze az összes helyi kapcsolatot az X szerverhez bármilyen helyi UID azonosítóról. Ez potenciális biztonsági kockázatot jelenthet, mivel bármely felhasználó hitelesítés nélkül hozzáférhet az X szerverhez. A hozzáférés visszavonásához futtassa a xhost -local: parancsot.
Létrehozhatja a következő wrapper szkriptet a chroot beállításához, a Steam felhasználóra történő váltáshoz és a Steam indításához. A wrapper szkript két, a felhasználó által definiált változót tartalmaz: chroot_bits és chroot_dir. A chroot_bits változót 64
-re kell állítani egy 64 bites chroot esetében. A chroot_dir változót a chroot könyvtár helyére kell rá állítani.
/usr/local/bin/steam-chroot
#!/bin/sh
# steam chroot bits
chroot_bits="64"
# steam chroot directory
chroot_dir="/usr/local/steam64/"
# check if chroot bits is valid
if [ "${chroot_bits}" = "32" ] ; then
chroot_arch="linux32"
elif [ "${chroot_bits}" = "64" ] ; then
chroot_arch="linux64"
else
printf "Invalid chroot bits value '%s'. Permitted values are '32' and '64'.\n" "${chroot_bits}"
exit 1
fi
# check if the chroot directory exists
if [ ! -d "${chroot_dir}" ] ; then
printf "The chroot directory '%s' does not exist!\n" "${chroot_dir}"
exit 1
fi
# mount the chroot directories
mount -v -t proc /proc "${chroot_dir}proc"
mount -vR /sys "${chroot_dir}sys"
mount --make-rslave "${chroot_dir}sys"
mount -vR /dev "${chroot_dir}dev"
mount --make-rslave "${chroot_dir}dev"
mount -vR /run "${chroot_dir}run"
mount --make-rslave "${chroot_dir}run"
mount -vR /var/db/repos/gentoo "${chroot_dir}var/db/repos/gentoo"
# the --make-rslave flags are needed for systemd support
# chroot, substitute user, and start steam
if [[ -n $( grep systemd /proc/1/comm ) ]]; then
"${chroot_arch}" unshare -m chroot "${chroot_dir}" su -c 'steam' steam
else
"${chroot_arch}" chroot "${chroot_dir}" su -c 'steam' steam
fi
# unmount the chroot directories when steam exits
umount -vl "${chroot_dir}proc"
umount -vl "${chroot_dir}sys"
umount -vl "${chroot_dir}dev"
umount -vl "${chroot_dir}run"
umount -vl "${chroot_dir}var/db/repos/gentoo"
A wrapper script felcsatolja a /run könyvtárat, hogy a Steam csatlakozhasson a D-Bus-hoz, ha az a host számítógépen fut. A Steam akkor is működik, ha a D-Bus nincs telepítve, de nem végzetes hibák jelentkeznek a Steam által tartalmazott dev-libs/libappindicator kapcsán. A Steam szoftvernek szüksége van a D-Bus-ra, amennyiben Ön a "Jegyezze meg a jelszavam" opciót választja a Steam bejelentkezési párbeszédablakában. További részletekért tekintse meg a client troubleshooting részt.
Tegye futtathatóvá a wrapper szkriptet:
root #
chmod +x /usr/local/bin/steam-chroot
Futtassa a wrapper szkriptet root jogosultsággal a Steam elindításához:
root #
steam-chroot
Systemd és chroot
Amikor a host operációs rendszer systemd init rendszerrel működik, akkor a nyers chroot nem elegendő. Ehelyett az unshare -m chroot
parancsot kell használni. Valójában a fent említett wrapper script támogatja ezt az esetet.
Magyarázat: Nyers chroot
használata esetén a Steam kliens nem fut, hanem azt jelzi, hogy "A Steam most azt követeli meg, hogy a felhasználói névterek engedélyezve legyenek." Ennek érdekében a Steam teszteli, hogy a bwrap --bind / / true
parancs sikeres-e. (Ehhez szükséges, hogy a bwrap setuid-re legyen állítva.) A bwrap belsőleg meghívja a pivot_root (2) funkciót, amelynek feltételei "/"-val nem teljesülnek systemd alatt. Az unshare használatával azonban a névtér elválik, és így a dolgok működnek.
Easy Anti Cheat támogatás
Mivel a DT_HASH alapértelmezés szerint nincs engedélyezve a glibc 2.36 óta, ezért a következő lépéseket kell alkalmazni annak érdekében, hogy az EAC játékok működjenek:
/etc/portage/package.use/glibc
sys-libs/glibc hash-sysv-compat
root #
emerge -1 sys-libs/glibc
Eltávolítás
Kézi telepítés eltávolítása
Steam szoftverfüggőségeinek az eltávolítása:
root #
emerge --deselect @steam
root #
emerge --ask --depclean
Távolítsa el a Steam futtatható fájlt és a Portage beállítást:
root #
rm /usr/bin/steam
root #
rm /etc/portage/sets/steam
root #
rm -rf /etc/portage/package.*/steam
Távolítsa el a Steam könyvtárat a felhasználói fiókból:
user $
rm -rf ~/.local/share/Steam
Külső szoftvercsomag-tárolóból telepített szoftvercsomag eltávolítása
Távolítsa el a steam-launcher ebuild-et:
root #
emerge --ask --depclean --verbose games-util/steam-launcher
Hibaelhárítás
A leggyakoribb játékokkal kapcsolatos problémák megoldhatók a stack-realign
USE jelölőzászló engedélyezésével a sys-libs/glibc szoftvercsomagon, majd a @world set újrafordításával. Érdemes ezt a módosítást elvégezni, mint az első hibaelhárítási lépést.
Egyes Steam és játékokkal kapcsolatos hibaelhárítások elérhetőek a Steam/Client troubleshooting és a Steam/Games troubleshooting aloldalakon.
Ha a protonon keresztül szeretne játékokat játszani, akkor ne felejtse el hozzáadni a vulkan
USE jelölőzászlót a media-libs/mesa szoftvercsomaghoz.
A legjobb hely segítséget kérni a Steam szál a Gentoo Fórumokon. Ha egy probléma megoldását mások is megerősítik, akkor adja hozzá ezt az oldalhoz vagy a megfelelő hibaelhárítási aloldalhoz. Kérjük, ne távolítson el tartalmat megbeszélés nélkül, kivéve, ha az egyértelműen hibás.
További olvasnivaló a témában
- Games
- Steam Controller — a game controller developed by Valve.
- Steam/Client troubleshooting — provides troubleshooting details for the Steam client on Linux systems.
- Steam/Games troubleshooting — provides troubleshooting details for specific games running via Steam.
Külső források
- Gentoo Forums - Native Steam client and source game engine
- GitHub - Steam for Linux Client
- Steam Community - Steam for Linux
Hivatkozások
- ↑ https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561
- ↑ https://www.gamingonlinux.com/steam-tracker/
- ↑ https://github.com/ValveSoftware/Proton#introduction
- ↑ 4.0 4.1 32-bit Linux distributions are no longer supported by Steam, Steam Web Browser disabled
- ↑ Issues on 4.18.9-gentoo kernel, Steam for Linux, 2018. szeptember 24. Letöltve: 2018. szeptember 25.