Melhor método de copiar full / nix / store através da rede de uma máquina nixos para outra

6

Atualmente eu uso:

find /nix/store/* -maxdepth 1 | xargs -L <N> nix-copy-closure --sign --gzip --use-substitutes --to <remote machine>

Em que N é um número razoável que não tornará o comprimento da linha muito longo para xargs .

Existe um método mais idiomático de se fazer isso em duas máquinas de execução?

editar:

Vantagens do método acima:

  • Não copia closures que existem em ambas as extremidades. Isso também significa que você pode parar uma transferência e continuar de onde parou, além de alguma sobrecarga de verificação de hash
  • --use-substitues Isso fará com que a máquina remota baixe primeiro os caches binários e depois envie a segunda máquina. Isso é ótimo no caso comum de enviar arquivos do meu laptop para um servidor de remoção, onde o servidor remoto geralmente tem 100 vezes a largura de banda do cache binário do nix em comparação com o meu laptop
  • nix-copy-closure copia o ssh para que a transferência seja criptografada.
  • nix-copy-closure, para o meu conhecimento limitado, não deve interferir com quaisquer outras operações que ocorram na loja nix.

Página man online para nix-copy-closure

    
por Davorak 20.05.2015 / 06:38

2 respostas

6

Eu prefiro usar nix-serve para compartilhar pacotes entre laptops

% nix-env -i nix-serve
% nix-serve -p 8080

mais opções sobre como compartilhar pacotes nix entre máquinas descritas no manual nix

    
por 21.05.2015 / 09:49
2

Eu prefiro usar scp . O comando abaixo copiará tudo recursivamente para sua máquina remota:

scp -r /nix/store/* your_user@host_name:/path/to/store/copy

Se você quiser preservar tempos de modificação, horários de acesso e modos do arquivo original, use o sinalizador -p .

Para otimizar o desempenho do scp e aumentar a velocidade, use blowfish como o chiper e ative a compressão da seguinte forma:

scp -c blowfish -r -C /nix/store/* your_user@host_name:/path/to/store/copy
    
por 20.05.2015 / 08:32

Tags