Rastrear / etc / nixos / resultar em VCS?

0

Embora seja possível reverter facilmente as gerações de NixOS, isso não retornará a configuração correspondente do NixOS em /etc/nixos/configuration.nix . Assim, parece ser comum seguir /etc/nixos/ num sistema de controlo de versão (VCS), e. em Git.

Ao fazer isso, o link /etc/nixos/result também deve ser rastreado? Por quê? / Por que não?

    
por das-g 29.12.2017 / 21:34

2 respostas

1

Não vejo nenhuma vantagem significativa em fazê-lo, mas talvez meus casos de uso tenham sido simples demais a esse respeito.

Eu prefiro assistir ls -l /nix/var/nix/profiles/ e / ou ls -l /nix/var/nix/profiles/system-profiles , com base no fato de você nomear o (s) seu (s) perfil (is) do sistema e, normalmente, excluir manualmente os links simbólicos que eu quero colecionar.

    
por 30.12.2017 / 08:45
0

Você pode acompanhar seu configuration.nix em sua geração correspondente. Você só precisa criar uma referência a ela (dentro de si) para que ela se torne parte do fechamento. Aqui está um exemplo:

configuration.nix

{ config, lib, pkgs, ... }:
{
  # yada, yada

  environment.etc."configuration.nix".source = /etc/nixos/configuration.nix;
};

A opção environment.etc permite que você crie arquivos declarativamente em /etc . O Nix detectará /etc/nixos/configuration.nix como path type (os caminhos são tipos de primeira classe no Nix) e, assim, copie seu conteúdo para o armazenamento Nix. O resultado é um link simbólico /etc/configuration.nix apontando (indiretamente) para /nix/store/blah-blah-configuration.nix , o que significa que cada geração terá um link simbólico /etc/configuration.nix apontando para sua configuração correspondente. Você pode então fazer algo semelhante com arquivos adicionais, como hardware-configuration.nix .

A captura

Embora os itens acima armazenem sua configuração, ela não será utilizável por nix-env , nix-shell , nixos-rebuild , etc, porque esses comandos usam $NIX_PATH para localizar configurações. Embora você possa conseguir resolver isso (consulte aqui ) Eu não recomendo porque quando você executa nixos-rebuild ele irá usar o arquivo de configuração errado ( /etc/nixos/configuration.nix ao invés da cópia no repositório Nix, que é somente leitura de qualquer maneira). As coisas ficariam muito rápidas.

E, claro, a loja Nix é legível por todos .

    
por 02.01.2018 / 02:15