¿Cómo instalar Steam en NixOS?
Al instalar cosas en NixOS, debe tener un paquete en el formato correcto en la página web nixos.org. Steam está disponible, pero algunas peculiaridades pueden hacerte tropezar cuando intentas instalarlo. Escucharás más sobre esto aquí.
En particular, es un paquete de software no libre, por lo que debe habilitar esta opción. También deberá manejar el problema 'glXChooseVisual falló'. El proceso funcionará de una manera en NixOS y de otra en otras distribuciones. Es más complejo con solo el administrador de paquetes Nix.
¿Qué es Steam?
La mayoría de las personas que vienen ya saben esto, pero de todos modos lo cubriremos aquí. Steam es una plataforma y un mercado para juegos y jugadores. Comenzó como una forma de actualizar tu juego desde Valve. Fue el único por primera vez en la vida. A medida que la compañía agregó más juegos, también los agregó a la plataforma. Con tantos juegos disponibles, lo reconstruyeron para convertirlo en un mercado y una plataforma comunitaria. Ahora puedes jugar y comprar juegos y mantenerte en contacto con otros jugadores en la plataforma. Dado todo esto, por supuesto, desea tenerlo instalado en su sistema NixOS.
Instalación del ejecutable principal
Ha habido algunos problemas con Steam en NixOS en el pasado. Los problemas se resolvieron pero aún requieren algunas acciones adicionales en comparación con otros paquetes.
Un problema es que esto no es software libre. En segundo lugar, los paquetes usan Glx de la variante de 32 bits, algo que no se refleja claramente en los paquetes. Estos dos problemas deben abordarse en la configuración del administrador de paquetes: archivo de configuración Nix o NixOS (.nix). La solución real fue establecer el valor de soporte de dri de 32 bits en verdadero. Hubo algunos otros, pero gracias a un nuevo módulo de Maciej Krüger, ahora puede simplemente agregar el módulo con el código a continuación.
nixpkgs.config.allowNonFree = true;
Este es un módulo que ha resuelto varios problemas con algunas peculiaridades del software Steam. Una vez que haya configurado esto correctamente, puede ejecutar la instalación. Si está interesado, el siguiente código es del compromiso que agrega el módulo para que esto suceda.
with lib;
let
cfg = config.programs.steam;
in {
options.programs.steam.enable = mkEnableOption "steam";
config = mkIf cfg.enable {
hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context:
https://github.com/NixOS/nixpkgs/issues/47932
enable = true;
driSupport32Bit = true;
};
# optionally enable 32bit pulseaudio support if pulseaudio is enabled
hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
hardware.steam-hardware.enable = true;
environment.systemPackages = [ pkgs.steam ];
};
meta.maintainers = with maintainers; [ mkg20001 ];
}
Como puedes ver en el código, activa el soporte para audio y renderizado directo de 32 bits. También agrega el paquete 'pkgs.steam', que es el paquete principal de Steam. Con la configuración anterior, debe tener todo el sistema en funcionamiento en el próximo cambio de reconstrucción. Una vez que haya guardado su configuración, ejecute:
Para la mayoría de ustedes, esto permitirá que la instalación avance. Ahora debe asegurarse de tener suficiente espacio en disco para la instalación. Además, los juegos que instalará también necesitan espacio en disco.
Si las cosas van mal, utilice:
Hay muchos otros paquetes opcionales para instalar si tiene necesidades o deseos especiales.
nixpkgs.steam-run (ejecución de vapor)
¿Por qué necesitas Steam-Run? Steam-run hace posible ejecutar usando las bibliotecas de NixOS en lugar de las que proporciona Steam. Esto puede funcionar mejor cuando desea ejecutar juegos que requieren un sistema Linux normal debajo. Algunos juegos necesitan parches para ejecutarse, utilizando el entorno Steam. La razón es que solo los juegos proporcionados por Steam están diseñados para un entorno cerrado. Para usarlos, agregue steam-run o steam-run-native a su archivo de configuración.
...
steam-run-native
];
También puede usar steam-run directamente como comando, así:
Esto ejecutará el juego en un entorno Steam directamente.
Dependencias faltantes
Algunos juegos pueden necesitar dependencias que NixOS no proporciona automáticamente. Para solucionar esto, puede agregarlos al archivo de configuración en systemPackages.
...
(steam.override { extraPkgs = pkgs: [ mono gtk3 gtk3-x11 libgdiplus zlib ];
nativeOnly = true; }).run
(steam.override { withPrimus = true; extraPkgs = pkgs: [ bumblebee glxinfo ];
nativeOnly = true; }).run
(steam.override { withJava = true; })
];
El código anterior agrega dependencias para muchos casos. Usted mismo elegirá los que necesite, por supuesto. También puede buscar otras dependencias que puedan faltar. Sin embargo, estarás solo si lo haces, así que prepárate para usar el terminal para iniciar y rastrearlo cuando pidas ayuda en los diferentes foros de soporte.
Otros paquetes útiles
También tienes algunos paquetes especiales que pueden ayudarte con algunos problemas.
nixpkgs.steamcmd (steamcmd)
Este paquete agrega herramientas de línea de comandos de Steam. Puede usar esto para instalar software y ejecutar sus propios servidores; algunas tareas se pueden automatizar.
También tienes muchos otros paquetes disponibles. Para usarlos, los agrega a sus paquetes y los reconstruye. Los disponibles actualmente son los siguientes:
nixpkgs.kodiPlugins.steam-launcher (complemento-kodi-steam-launcher)
Inicie Steam en modo Big Picture desde Kodi
nixpkgs.pidgin-opensteamworks (pidgin-opensteamworks)
Complemento para Pidgin 2.x, que implementa la compatibilidad con Steam Friends/Steam IM
nixpkgs.bitlbee-steam (bitlbee-steam)
Complemento de protocolo Steam para BitlBee
nixpkgs.eidolon (eidolon-1.4.6)
Un único registro basado en TUI para juegos sin DRM, Wine y Steam en Linux, al que se accede a través de un menú de inicio de Rofi.
nixpkgs.kodiPlugins.steam-controller (kodi-plugin-peripheral.steamcontroller)
Complemento binario para el controlador de vapor
nixpkgs.matterbridge (matterbridge-1.18.0)
El puente simple entre Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat (a través de XMPP), Matrix y Steam
nixpkgs.steamcontroller (controlador de vapor)
Un controlador de controlador de Steam independiente
nixpkgs.sc-controlador (sc-controlador-0.4.7)
Controlador de modo de usuario y GUI para el controlador Steam y otros controladores
Conclusión
Steam presenta un pequeño problema porque gran parte de la plataforma y algunos juegos aún requieren bibliotecas de 32 bits, y debes habilitarlas. Con suerte, has obtenido tu respuesta aquí. Si no, ¡puedes preguntar en los foros! NixOS es extremadamente versátil, pero familiarizarse con el lenguaje Nix es una tarea ardua. Cuando cambie, asegúrese de tener una comprensión básica del idioma para evitar largas búsquedas de soluciones. Debería poder encontrar muchos usted mismo con suficiente comprensión del lenguaje Nix.