Como instalar Steam em Nixos?

Como instalar Steam em Nixos?
Ao instalar as coisas no Nixos, você precisa ter um pacote no formato certo no Nixos.página da web org. O vapor está disponível, mas algumas peculiaridades podem viajar você quando você tenta instalá -lo. Você vai ouvir mais sobre isso aqui.

Em particular, é um pacote de software não livre, então você deve ativar esta opção. Você também precisará lidar com o problema 'GlxChoosevisual falhou'. O processo funcionará de uma maneira em nixos e de outra maneira em outras distribuições. É mais complexo apenas com o gerenciador de pacotes nix.

O que é vapor?

A maioria das pessoas que já vêm sabem disso, mas vamos cobri -lo aqui de qualquer maneira. Steam é uma plataforma e mercado para jogos e jogadores. Começou como uma maneira de atualizar seu jogo da Valve. Foi o único pela primeira vez na vida. À medida que a empresa adicionou mais jogos, eles também os adicionaram à plataforma. Com tantos jogos disponíveis, eles o reconstruíram para ser um mercado e plataforma comunitária. Agora você pode jogar e comprar jogos e manter contato com colegas jogadores na plataforma. Dado tudo isso, é claro, você deseja instalá -lo no seu sistema nixos.

Instalando o executável principal

Houve alguns problemas com o vapor em nixos no passado. Os problemas foram resolvidos, mas ainda exigem algumas ações extras em comparação com outros pacotes.

Uma questão é que este não é um software livre. Segundo, os pacotes usam GLX da variante de 32 bits, algo que não se reflete claramente nos pacotes. Essas duas questões precisam ser abordadas na configuração do gerenciador de pacotes: Nix ou Nixos Configuration (.nix) arquivo. A solução real foi definir o valor de 32 bits de suporte ao DRI como true. Havia alguns outros, mas graças a um novo módulo de Maciej Krüger, agora você pode apenas adicionar o módulo com o código abaixo.

programas.vapor.enable = true;
nixpkgs.Config.alownonfree = true;

Este é um módulo que resolveu vários problemas com algumas peculiaridades do software Steam. Depois de ter esse conjunto corretamente, você pode executar a instalação. Se você estiver interessado, o código abaixo é do Commit que adiciona o módulo para fazer isso acontecer.

config, lib, pkgs,…:
com lib;
deixar
cfg = config.programas.vapor;
em
opções.programas.vapor.enable = mkenableOption "Steam";
config = mkif cfg.habilitar
hardware.OpenGl = # Isso corrige o bug "GLXCHOOSEVISUAL FAIL", Contexto:
https: // github.com/nixos/nixpkgs/problemas/47932
enable = true;
drisupport32bit = true;
;
# Opcionalmente ative o suporte de 32 bits PULSEAUDIO Se o pulseaudio estiver ativado
hardware.pulseaudio.suporte32bit = config.hardware.pulseaudio.habilitar;
hardware.Hardware a vapor.enable = true;
ambiente.SystemPackages = [PKGS.vapor ];
;
Meta.mantenedores = com mantenedores; [MKG20001];

Como você pode ver no código, ele ativa o suporte para renderização direta de 32 bits e áudio. Ele também adiciona o pacote 'PKGS.Steam ', que é o principal pacote de vapor. Com a configuração anterior, você deve colocar todo o sistema em funcionamento no próximo interruptor de reconstrução. Depois de salvar sua configuração, execute:

Chave de $ nixos-Rebuild

Para a maioria de vocês, isso permitirá que a instalação seja avançada. Agora você precisa ter espaço de disco suficiente para a instalação. Além disso, os jogos que você instalará precisam de espaço em disco também.

hardware.Opengl.drisupport32bit = true;

Se as coisas der errado, use:

$ strace vapor

Existem muitos outros pacotes opcionais para instalar se você tiver alguma necessidade ou desejos especiais.

nixpkgs.Running a vapor (corrida a vapor)

Por que você precisa de força a vapor? A corrida a vapor torna possível funcionar usando bibliotecas nixos em vez das que o vapor fornece. Isso pode funcionar melhor quando você deseja executar jogos que esperam um sistema Linux regular abaixo. Alguns jogos precisam ser executados, usando o ambiente de vapor. O motivo é que apenas os jogos fornecidos a vapor são construídos para um ambiente fechado. Para usá-las, adicione a execução de vapor ou a nativa a vapor ao seu arquivo de configuração.

ambiente.systempackages = com pkgs; [[
..
Native a vapor
];

Você também pode usar a corrida de vapor diretamente como um comando, como este:

$ run-bour ./Começar o jogo.sh

Isso vai executar o jogo em um ambiente de vapor diretamente.

Falta de dependências

Alguns jogos podem precisar de dependências que o Nixos não fornece automaticamente. Para corrigir isso, você pode adicioná -los ao arquivo de configuração em SystemPackages.

ambiente.systempackages = com pkgs; [[
..
(vapor.substituir extrapkgs = pkgs: [mono gtk3 gtk3-x11 libgdiplus zlib];
noronely = true; ).correr
(vapor.substituir withPrimus = true; extrapkgs = pkgs: [Bumblebee Glxinfo];
noronely = true; ).correr
(vapor.substituir withjava = true; )
];

O código acima adiciona dependências para muitos casos. Você vai escolher os que você precisa, é claro. Você também pode procurar outras dependências que possam estar faltando. No entanto, você estará sozinho, se o fizer, então esteja preparado para usar o terminal para iniciar e rastreá -lo quando pedir ajuda nos diferentes fóruns de suporte.

Outros pacotes úteis

Você também tem alguns pacotes especiais que podem ajudá -lo com alguns problemas.

nixpkgs.Steamcmd (Steamcmd)

Este pacote adiciona ferramentas de linha de comando Steam. Você pode usar isso para instalar software e executar seus próprios servidores; Algumas tarefas podem ser automatizadas.

Você também tem muitos outros pacotes disponíveis. Para usá -los, você os adiciona aos seus pacotes e reconstrua. Os atualmente disponíveis estão abaixo:

nixpkgs.Kodiplugins.Lancher a vapor (Kodi-Plugin-Steam-Launcher)

Inicie o Steam no modo Big Picture de Kodi

nixpkgs.Pidgin-OpenSteamworks (Pidgin-OpenSteamworks)

Plugin para pidgin 2.x, que implementa os amigos do vapor/compatibilidade com vapor

nixpkgs.bitlbee-steam (bitlbee-steam)

Plugin de protocolo a vapor para bitlbee

nixpkgs.Eidolon (Eidolon-1.4.6)

Um único registro baseado em TUI para jogos sem DRM, vinhos e vapor no Linux, acessado por meio de um menu de lançamento do ROFI

nixpkgs.Kodiplugins.Controlador de vapor (Kodi-Plugin-periférico.SteamController)

Addon binário para o controlador de vapor

nixpkgs.Matterbridge (Matterbridge-1.18.0)

A ponte simples entre matéria, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Bate -papo, hipchat (via xmpp), matriz e vapor

nixpkgs.SteamController (SteamController)

Um driver de controlador de vapor independente

nixpkgs.SC-Controller (SC-Controller-0.4.7)

Driver de modo de usuário e GUI para controlador de vapor e outros controladores

Conclusão

O Steam apresenta um pequeno problema porque grande parte da plataforma e alguns jogos ainda exigem bibliotecas de 32 bits, e você precisa permitir que isso. Felizmente, você recebeu sua resposta aqui. Caso contrário, você pode perguntar nos fóruns! Nixos é extremamente versátil, mas conseguir entender a linguagem nix é uma tarefa árdua. Ao mudar, certifique -se de ter algum entendimento fundamental do idioma para evitar pesquisas longas de enrolamento por soluções. Você deve poder criar muitos com muitos alojados do idioma nix.