
Az UMU Launcher egyike azoknak az eszközöknek, amelyek anélkül, hogy nagy zajt csapnának, megváltoztatják a Linuxon való játékmódunkat. Messze attól, hogy egy tipikus grafikus indító legyen, küldetése, hogy egységesítse a Windows-játékok Protonnal való futtatását a Steamen kívül , így bármely kliens vagy szkript kihasználhatja ugyanazt a környezetet, amelyet a Valve használ, anélkül, hogy magára a Steamre támaszkodna.
Egyszerűen fogalmazva: az UMU a Steam Runtime konténermodelljét másolja (ugyanazt, amit a Proton és a Steam Linux Runtime is használ) néhány apró módosítással, így a Proton ugyanúgy működik , mint a Steamen belül, de bármilyen kompatibilis indítóból, például a Lutrisból, a Heroicból vagy a Bottlesből, sőt, egy egyszerű terminálparancsból is. És igen, nem kell telepíteni a Steam-et a használatához.
Mi az UMU Launcher és honnan ered a neve?
Az UMU lényegében a Steam Linux Runtime „mesterlövész” és a Steam Runtime Tools adaptációja , saját belépési ponttal és segédprogramokkal harmadik féltől származó integrációhoz. Az „umu” név nem véletlen: egy polinéziai kemencére utal, amely hevített vulkáni kőzetekből áll , és amelyre bármit is helyezünk, az „megsül”. A metafora illik a Valve „nyomásedény” nevű konténereszközére: az UMU az a „tűzhely” lenne, amelyre a nyomásedényt helyezik, hogy előkészítsék a környezetet, ahol a Proton „megsüti” a játékaidat.
Amikor a Steam elindít egy játékot a Protonnal, elindít egy folyamatláncot ott, ahol az normális esetben megjelenik. gőzindító-csomagoló (egy puszta futó amely továbbítja a környezeti változókat), és ami döntő fontosságú, a SteamLinuxRuntime_sniper annak _v2-entry-point amely összeszereli a tartályt és protont tölt be. Az UMU ezt a logikát ismétli meg: a forgatókönyv _v2-entry-point átnevezik umu, teszi hozzá umu-run cserélni steam-launch-wrapper és a szükséges részleteket úgy igazítják, Használd a Protont a Steamen kívül a Proton által igényelt környezeti elvárások fenntartása (beleértve a környezeti változókat is).
Hogyan működik: környezeti változók, konténer és umu-run
A kulcs benne van ugyanolyan típusú konténerben indítsd a játékot, mint amit a Steam használ, a Protonhoz tartozó megfelelő változókkal. Az UMU lehetővé teszi a meghívást umu-run a játék futtatható fájljának, az argumentumoknak és opcionálisan, A WINEPREFIX, a Proton verzió és az áruház amelyből a játék konkrét javításokat alkalmaz.
Az umu-run főbb paraméterei és változói , amelyeket ismerned kell:
- BOR ELŐFIX: WINE előtag elérési útja. Ha nem adjuk meg, az UMU alapértelmezés szerint létrehozza azt a következőben:
$HOME/Games/umu/GAMEID. Ha nem definiálod a GAMEID-t, az alapértelmezett előtag a következő lesz:$HOME/Games/umu/umu-default. - JÁTÉKAZONOSÍTÓ: lehet tetszőleges érték vagy érvényes azonosító a umu-adatbázis. Ha nem definiálod, használatban van
umu-default(automatikus javítások nélkül). - PROTONÚT: a használni kívánt Proton verzió teljes elérési útja. Támogatja a következő értéket is: GE-Proton mert automatikusan letölti a legújabb buildet a GE-Protontól. Ha nem jelzi, UMU-Proton (a Valve stabil verziója UMU támogatással) az alapértelmezett beállítás.
- STORE: a játék boltja vagy „üzletportálja” (például, EGS, megy, stb.). Az UMU egyesíti STORE + GAMEID a konkrét javítások kereséséhez az adatbázisodban.
- PROTON_IGEProton ige, amit használunk. Ha nem állítod be, használd a "waitforexitandrun" függvényt.
- UMU_NAPLÓ: Engedélyezi az UMU hibakeresési naplóit. Hasznos a következőkhöz: problémákat diagnosztizálni.
- UMU_ZENITY: ha aktív, felugró ablakok megjelenítése a Zenity segítségével nagy fájlok letöltésekor.
- UMU_FUNTÁSI_FRISSÍTÉS y UMU_NO_PROTON: további lehetőségek a következőhöz: futásidejű menedzsment vagy olyan forgatókönyvek, amikor nem szeretnéd, hogy az UMU kezelje a Protont.
Ezen túlmenően, Az UMU automatikusan letölti és használja a szükséges Steam Runtime-ot a kiválasztott Proton verzióhoz, és helyezze el a fájljait a $HOME/.local/share/umuEzzel a futásidejű konténer készen áll, és A játék úgy fut, mintha eredetileg a Steamre lenne telepítve., közvetlenül a Steamen kívül.
Előnyök: Miért fontos ez az egyesítés?
Az UMU megközelítése megkönnyíti, hogy az összes indítóprogram ugyanazt a „nyelvet” beszélje, amikor Protonnal futtat játékokat. Ez számos egyértelmű előnnyel jár mind a felhasználók, mind a fejlesztők számára:
- Nincsenek Steam-követelményekA Proton használatához már nincs szükséged a Steam kliensre vagy bináris fájlokra.
- Egységes javítási bázis- Játékspecifikus javítások (protonjavítások) megosztva a közösségen belül és a különböző indítókon.
- Paritás a SteammelA játékok úgy kezdődnek, hogy a Proton ugyanolyan típusú konténerben van, mint amit a Steam használ. a környezetének lemásolása.
- Központosított karbantartás: ha valami megváltozik, az frissül a Proton GE-ben és/vagy a protonfixesben, vagy egy egységes Proton buildben, mindenkire pozitív hatással van.
Ma a protonfixes egy helyi mappát csomagol a következőből: «játékjavítások»de maga a projekt azt sugallja, hogy online letöltéssé fejlődhet így bármilyen eszközt is használsz umu-run központilag szerezd be a szükséges javításokat.
ProtonFixes és az UMU adatbázis: Hogyan alkalmazzák a javításokat
Az UMU egy egyszerű munkafolyamatot javasol az indítóprogram számára, amely azonosítja a játékot, a hozzá tartozó tárolót és a hozzá tartozó javítást, majd automatikusan alkalmazza azt a Protonnal való futtatás előtt. A folyamat, ahogy leírtuk, a következő lépésekből áll:
- Hozzon létre egy adatbázist játékcímekkel, azok azonosítóival különböző üzletekben és a umu-azonosító korrelált.
- A dobó a bázison keresi a játék adatait, és lekéri a umu-azonosító, ami megtörténik
umu-runvalamint STORE, Proton, WINEPREFIX, futtatható fájl és argumentumok. - Amikor elkezdjük a játékot azzal, hogy
umu-run, protonfixek felismeri a STORE + umu-ID-t, megkeresi a megfelelő javítószkriptet és alkalmazza kivégzés előtt. - A protonfixes a szkripteket a következőképpen rendezi el: mappák üzletenkéntUgyanaz a játék több áruházban is ugyanazt az umu-azonosítót használja; lehetnek áruházspecifikus szkriptjei vagy hivatkozás egy meglévő javításra ha megosztjátok az igényeiteket.
Egy példa, amit felhoznak, az Borderlands 3 az Epic Games Store-ban (EGS)Az EGS felhasználási területei «kódnevek» mint a „Macskamenta”. Az indítóprogram érzékeli, hogy az üzlet EGS és a kódnév az Macskagyökér, lekérdezi az adatbázist, társítja azt a "Borderlands 3"-hoz és a umu-azonosító megfelelő (például umu-12345), és az azonosítót átadják a következőnek: umu-run. Így garantált a helyes javítás még akkor is, ha az üzlet nem használja a játék márkanevét.
Felhasználási referenciák: lehetőségek és példák
Az UMU szabványos dokumentációt tartalmaz man oldal mert umu-run, olyan felhasználási formákkal, mint umu-run , umu-run ] o umu-run winetricks , Plus --config <FILE> y --helpPéldáik között említik gyakorlati esetek például:
- Futtass egy játékot közvetlenül.
- Futtass egy játékot egy adott protonfix-szel.
- Konfigurációs fájl használata a végrehajtás paraméterezéséhez.
- Hozz létre egy WINEPREFIX UMU-t és indítsd el Protonnal.
- Proton automatikus kiválasztása (és szükség esetén hozza létre az előtagot).
- Definiálj egy érvényes proton igét kifejezetten.
- Hibakeresési naplók engedélyezése hibák diagnosztizálására.
- Egy adott Proton verzió név szerinti kikényszerítése.
- Használja a GE-Proton legújabb verzióját automatikusan.
- Winetricks igék végrehajtása -tól
umu-run. - Tiltsa le a protonfixes alkalmazást ha szükséged van rá.
A kapcsolódó segédprogramok közé tartoznak a winetricks , a zenity , maga az umu(5) programhoz való hivatkozások , valamint a Steam konténer futtatókörnyezetének dokumentációja . Hivatkozásokat tartalmaz a Proton repositorykra , az umu-protonfixes-re és az umu-adatbázisra is azok számára, akik tovább szeretnének kutatni vagy közreműködni szeretnének.
Építés és telepítés: a gyártástól a nixpkgs-ig
Azok számára, akik inkább a fordítást vagy a csomagolást részesítik előnyben, az UMU dokumentálja, hogy a buildhez bash , make , scdoc és Python eszközök (build, hatchling, installer, pip) szükségesek. Ezenkívül a közvetlen függőségek legújabb stabil verziójával megegyező minimális MSRV- t igényelnek.
Az ajánlott áramlási sebesség: töltsd le a kódot, lépjen be a könyvtárba, futtassa configure.sh --prefix a telepítési előtag beállításához (például /usr/local o /app ha Flatpakban fogsz csomagolni), futtasd make és ha minden jól megy, akkor a leletek is a birtokodban lesznek. ./builddirAkkor futhatsz. make install telepítéshez.
Felhasználói telepítéshez, Az UMU a futtatható fájlt ide helyezi $HOME/.local/bin. Ügyeljen arra, hogy add hozzá ezt a könyvtárat a PATH-hoz (például exportálva azt $HOME/.bash_profile), ha teljes elérési út nélkül szeretnéd meghívni.
Alternatív megoldásként az `uv` használatát javasolják virtuális környezet létrehozásához és az UMU gyors konfigurálásához . Az útmutató egy szkript létrehozását javasolja a projektkönyvtárban , a virtuális környezet létrehozását az `uv` segítségével , a függőségek telepítését, majd a szkript futtatását az ` uv`-on keresztül.
En NixOS/nixpkgsAz UMU elérhető a következőképpen: pkgs.umu-launcher 25.05 óta (instabil ág a jelzett időpontban). Részletezik a használatát is. pehely ha a csatornáénál frissebb pillanatképre van szükséged, sőt, még Példák a NixOS és a Home-Manager rendszerreHa régebbi csatornákkal dolgozik (például nixos-24.11), javasoljuk több csatorna kombinálását, vagy húzd ki a pelyhed.
A nixpkgs-ben felülbírálható csomagolási paraméterek:
- extraCsomagok: extra csomagok hozzáadása az FHS környezethez (alapértelmezett)
pkgs: []). - extraLibraries: extra könyvtárak hozzáadása az FHS környezethez (alapértelmezés szerint)
pkgs: []). - MultiArch-kal: 32 bites könyvtárak belefoglalása az FHS környezetbe (alapértelmezés szerint) igaz).
Ha flake-et használsz, akkor opcionális függőségeket konfigurálhatsz, például:
- Truststore-ral: lehetővé teszi a használatát rendszer megbízhatósági tárolója (alapértelmezett igaz).
- DeltaUpdates-szelfüggőségek aktiválása ehhez: Proton "delta frissítései" (alapértelmezett igaz).
Alkalmazási módokat is mutatnak átfedés specialArgs segítségével vagy közvetlenül a flake.nix, valamint egy példa a csomag argumentumainak felülbírálására.
Steam futásidejű környezet, naplók és hibakeresés
Az UMU a konténeralapú Steam Runtime- ra támaszkodik (ugyanarra, amelyet a natív Linux játékok és a Proton 8.0+ használnak ). Az ebben a környezetben fellépő problémák diagnosztizálásához maga a futtatókörnyezet hasznos környezeti változókat támogat, amikor a Steam klienssel indítják, amelyek referenciaként is szolgálnak a konténerrel való munka során:
- STEAM_LINUX_RUNTIME_LOG=1: engedélyezi a megjelenő naplókat
SteamLinuxRuntime_sniper/var/slr-*.log(az AppID-vel a névben).slr-latest.logegy symlink az utolsó generáltig. - STEAM_LINUX_RUNTIME_VERBOSE=1: részletesebb kimenet (fájlokba, ha LOG=1 van, vagy ugyanoda, mint a kimenete)
steamde). - NYOMÁS_EDÉNY_HÉJ=ehelyett: a játék indítása helyett, megnyit egy interaktív shell-t a konténeren belül ellenőrzésre.
A Valve dokumentálja a következő feltételezéseket: támogatott disztribúciók, hibakeresési tippeket, valamint kiadási megjegyzéseket és ismert futásidejű problémákat tart karban. Ha játékokat fejlesztesz és érdekel a célozd meg azt a környezetet, tekintse meg az SDK-ját és a fejlesztőknek szóló technikai információkat. A teljes futtatókörnyezet integrálva van harmadik féltől származó szoftverek nyílt licencekkel rendelkezik, és a forráskód verziózott könyvtárakban érhető el (lásd VERSIONS.txt hogy lássuk a megfeleléseket).
Legutóbbi frissítések és gyorsjavítások
Egy friss frissítésben a karbantartók kiadtak egy gyorsjavítást, amely visszaállította a "reaper" módosításait, mivel azok UMU-kat hibásan kezeltek a GameScope munkamenetekben Flatpak rendszeren . A lista a következőket írja:
- Visszafordítás "umu_run: a reaper implementációjának befejezése az umu-ban".
- Visszafordítás az "umu_run: futtassa a steammode kerülő megoldást a fő folyamaton".
- Visszafordítás az "umu_run: egyelőre fixen kódolt megjelenítési értékek használata".
- Frissített kiadási megjegyzések (kiadási megjegyzések kiegészítése).
Ez a fajta gyorsjavítás azt mutatja, hogy a projekt gyorsan reagál a regressziókra bizonyos környezetekben, mint például a Flatpak + Gamescope, ami kulcsfontosságú a Steam Deck felhasználók vagy az adott stacket használó asztali gépek számára.
Projekt állapota: első hivatalos verzió és a valós célkitűzés
Az 1.1.1-es verziót Thomas "GloriousEggroll" Crider és az Open Wine Components közösség az Unified Linux Wine Game Launcher első hivatalos kiadásaként emelte ki. Hangsúlyozzák, hogy ez nem egy grafikus indító, mint a Steam/Heroic/Lutris , hanem egy közös réteg , amelyet ezek az indítóprogramok használhatnak Proton-alapú játékok Steamen kívüli futtatására ugyanolyan hűséggel , mint a Steamen belül.
Azt jelzik, hogy működnie kellene a Flatpak és a Snap tárhelyein belül , és mindkét formátumhoz csomagolási utasításokat kellene biztosítani a repóriumukban. A cél az, hogy bármely alkalmazás ugyanolyan minőségben tudjon címeket kiadni olyan áruházakból, mint az Epic, a GOG vagy az Amazon, mint a Steamen, kihasználva a protonfixek és az egységes adatbázis előnyeit a folyamatosan javuló kompatibilitás érdekében.
Linkek és ajánlott dokumentáció
További információkért a dokumentáció olyan forrásokhoz vezető hivatkozásokat tartalmaz, mint például a Steam Runtime Sniper kiadási megjegyzései , az ismert futásidejű problémák és a hibák jelentésének módja , valamint a konténer-futásidejű dokumentum . Érdemes áttekinteni a következőket is:
- boros trükkök: https://github.com/Winetricks/winetricks
- Proton: https://github.com/ValveSoftware/Proton
- umu-protonjaxok: https://github.com/Open-Wine-Components/umu-protonfixes
- umu-adatbázis: https://github.com/Open-Wine-Components/umu-database
- Konténer futásideje: hivatalos dokumentáció
A projektet az Open Wine Components tartja karban más közreműködők segítségével. Ha szeretnél hozzájárulni, javasolják a Ruff telepítését a disztribúciódból, és a Ruff szerver engedélyezését a szerkesztődben a kódstílus egységességének megőrzése érdekében.
Az UMU technikai kapocsként működik a Proton és a hordozórakéták között, szabványosított futási idővel és közös javítási bázissal; ez lehetővé teszi a közösség számára, hogy gyorsabban és kevesebb súrlódással haladjon előre, a felhasználók pedig stabilitást és egyszerűséget élveznek, amikor a Steamen kívül ugyanolyan minőségben futtatják játékaikat.