NixOS

Hur man installerar Steam på NixOS?

Hur man installerar Steam på NixOS?
När du installerar saker på NixOS måste du ha ett paket i rätt format på nixos.org webbsida. Steam är tillgängligt, men vissa quirks kan ge dig upp när du försöker installera den. Du kommer att höra mer om detta här.

I synnerhet är det ett icke-gratis programvarupaket, så du måste aktivera det här alternativet. Du måste också hantera problemet 'glXChooseVisual failed'. Processen fungerar på ett sätt i NixOS och ett annat sätt på andra distributioner. Det är mer komplext med bara Nix-pakethanteraren.

Vad är Steam?

De flesta som kommer redan vet detta men låt oss täcka det här ändå. Steam är en plattform och marknad för spel och spelare. Det började som ett sätt att uppdatera ditt spel från Valve. Det var den enda för första gången i livet. När företaget lade till fler spel lade de dem också till plattformen. Med så många tillgängliga spel byggde de om det till att vara en marknadsplats och gemenskapsplattform. Du kan nu både spela och köpa spel och hålla kontakten med andra spelare på plattformen. Med tanke på allt detta vill du naturligtvis ha det installerat på ditt NixOS-system.

Installera Main Executable

Det har varit några problem med Steam på NixOS tidigare. Problemen löstes men kräver fortfarande några extra åtgärder jämfört med andra paket.

En fråga är att detta inte är fri programvara. För det andra använder paketen Glx i 32-bitarsvarianten, något som inte tydligt återspeglas i paketen. Dessa två problem måste hanteras i installationen av pakethanteraren: Nix- eller NixOS-konfiguration (.nix) -fil. Den faktiska lösningen var att ställa in dri support 32bit-värdet till true. Det fanns några andra, men tack vare en ny modul från Maciej Krüger kan du nu bara lägga till modulen med koden nedan.

program.ånga.aktivera = sant;
nixpkgs.konfigurera.allowNonFree = true;

Detta är en modul som har löst flera problem med vissa konstigheter i Steam-programvaran. När du har den här inställningen korrekt kan du köra installationen. Om du är intresserad kommer koden nedan från engagemanget som lägger till modulen för att få det att hända.

config, lib, pkgs, ...:
med lib;
låta
cfg = config.program.ånga;
i
alternativ.program.ånga.aktivera = mkEnableOption "steam";
config = mk Om cfg.Gör det möjligt
hårdvara.opengl = # detta åtgärdar fel "glXChooseVisual misslyckades", sammanhang:
https: // github.com / NixOS / nixpkgs / issues / 47932
aktivera = sant;
driSupport32Bit = true;
;
# aktivera valfritt 32-bitars pulseaudio-stöd om pulseaudio är aktiverat
hårdvara.pulseaudio.support32Bit = config.hårdvara.pulseaudio.Gör det möjligt;
hårdvara.ånga-hårdvara.aktivera = sant;
miljö.systemPackages = [pkgs.ånga];
;
meta.underhållare = med underhållare; [mkg20001];

Som du kan se i koden aktiverar det stödet för 32-bitars direkt rendering och ljud. Det lägger också till paketet 'pkgs.steam ', som är det viktigaste Steam-paketet. Med den tidigare konfigurationen bör du sätta igång hela systemet vid nästa ombyggnadsomkopplare. När du har sparat din konfiguration, kör:

$ nixos-ombyggnad-omkopplare

För de flesta av er kommer detta att göra det möjligt för installationen att gå vidare. Du måste nu se till att du har tillräckligt med diskutrymme för installationen. Även de spel du kommer att installera behöver också diskutrymme.

hårdvara.opengl.driSupport32Bit = true;

Om saker går fel, använd:

$ strace steam

Det finns många andra valfria paket att installera om du har några speciella behov eller önskemål.

nixpkgs.steam-run (steam-run)

Varför behöver du ångkörning? Steam-run gör det möjligt att köra med NixOS-bibliotek istället för de Steam tillhandahåller. Detta kan fungera bättre när du vill köra spel som förväntar sig ett vanligt Linux-system under. Vissa spel behöver patchas för att kunna köras med Steam-miljön. Anledningen är att endast Steam tillhandahållna spel är byggda för en sluten miljö. För att använda dessa, lägg till steam-run eller steam-run-native till din konfigurationsfil.

miljö.systemPackages = med pkgs; [
..
ånga-run-native
];

Du kan också använda ångkörning direkt som ett kommando, så här:

$ ångkörning ./starta spelet.sh

Detta kommer att köra spelet i en ångmiljö direkt.

Saknade beroenden

Vissa spel kan behöva beroenden som NixOS inte automatiskt tillhandahåller. För att åtgärda detta kan du lägga till dem i konfigurationsfilen under systemPackages.

miljö.systemPackages = med pkgs; [
..
(ånga.åsidosätta extraPkgs = pkgs: [mono gtk3 gtk3-x11 libgdiplus zlib];
nativeOnly = true; ).springa
(ånga.åsidosätta withPrimus = true; extraPkgs = pkgs: [humla glxinfo];
nativeOnly = true; ).springa
(ånga.åsidosätta withJava = true; )
];

Ovanstående kod lägger till beroenden i många fall. Du väljer självklart de du behöver självklart. Du kan också leta efter andra beroenden som kan saknas. Du kommer dock att vara ensam om du gör det, så var beredd att använda terminalen för att starta och spåra den när du ber om hjälp på de olika supportforumen.

Andra användbara paket

Du har också några specialpaket som kan hjälpa dig med vissa problem.

nixpkgs.steamcmd (steamcmd)

Detta paket lägger till Steam-kommandoradsverktyg. Du kan använda detta för att installera programvara och köra egna servrar; vissa uppgifter kan automatiseras.

Du har också många andra paket tillgängliga. För att använda dem lägger du till dem i dina paket och bygger om. De tillgängliga för närvarande finns nedan:

nixpkgs.kodiPlugins.steam-launcher (kodi-plugin-steam-launcher)

Starta Steam i Big Picture Mode från Kodi

nixpkgs.pidgin-opensteamworks (pidgin-opensteamworks)

Plugin för Pidgin 2.x, som implementerar Steam Friends / Steam IM-kompatibilitet

nixpkgs.bitlbee-steam (bitlbee-steam)

Steam-protokoll plugin för BitlBee

nixpkgs.eidolon (eidolon-1.4.6)

Ett enda TUI-baserat register för drm-fria, vin- och ångspel på Linux, nås via en rofi-startmeny

nixpkgs.kodiPlugins.ångkontroll (kodi-plugin-perifer.ångkontroll)

Binärt tillägg för ångkontrollen

nixpkgs.matterbridge (matterbridge-1.18.0)

Den enkla bron mellan Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chatt, Hipchat (via XMPP), Matrix och Steam

nixpkgs.ångkontroll (ångkontroll)

En fristående Steam-styrdrivrutin

nixpkgs.sc-controller (sc-controller-0.4.7)

Användarlägesdrivrutin och GUI för Steam-kontroller och andra styrenheter

Slutsats

Steam utgör ett litet problem eftersom en stor del av plattformen och vissa spel fortfarande kräver 32-bitars bibliotek, och du måste aktivera det. Förhoppningsvis har du fått ditt svar här. Om inte, kan du fråga på forumet! NixOS är extremt mångsidig, men att ta itu med Nix-språket är ett jobb. När du byter, se till att du har en grundläggande förståelse för språket för att undvika långvariga sökningar efter lösningar. Du borde kunna komma på många själv med tillräckligt grepp om Nix-språket.

Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...