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
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:
--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. 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
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