현재 나는 다음을 사용합니다:
find /nix/store/* -maxdepth 1 | xargs -L <N> nix-copy-closure --sign --gzip --use-substitutes --to <remote machine>
N
줄 길이를 너무 길게 만들지 않는 합리적인 숫자는 어디에 있습니까 xargs
?
두 대의 실행 중인 컴퓨터에서 이 작업을 수행하는 더 관용적인 방법이 있습니까?
편집하다:
위 방법의 장점:
- 양쪽 끝에 존재하는 클로저는 복사되지 않습니다. 이는 또한 전송을 중지하고 해시 검사 오버헤드를 수행하기 전에 중단한 부분부터 계속할 수 있음을 의미합니다.
--use-substitues
이렇게 하면 원격 컴퓨터가 컴퓨터를 보내기 전에 먼저 바이너리 캐시에서 다운로드하게 됩니다. 이는 내 노트북에서 드롭 서버로 파일을 보내는 일반적인 시나리오에서 유용합니다. 원격 서버는 일반적으로 내 노트북에 비해 nix 바이너리 캐시에 대한 대역폭이 100배 더 높습니다.nix-copy-closure
복사는 SSH를 통해 수행되므로 전송이 암호화됩니다.- 내가 아는 한, nix-copy-closure는 nix 스토어에서 발생하는 다른 작업을 방해해서는 안 됩니다.
답변1
나는 nix-serve
노트북 간에 패키지를 공유하는 것을 선호합니다
% nix-env -i nix-serve
% nix-serve -p 8080
머신 간에 nix 패키지를 공유하는 방법에 대한 추가 옵션은 다음을 참조하세요.닉스 매뉴얼
답변2
나는 를 사용하는 것을 선호합니다 scp
. 다음 명령은 모든 것을 원격 시스템에 재귀적으로 복사합니다.
scp -r /nix/store/* your_user@host_name:/path/to/store/copy
-p
원본 파일의 수정 시간, 액세스 시간 및 모드를 유지하려면 이 플래그를 사용하십시오 .
scp 성능을 최적화하고 속도를 높이려면 복어를 슬라이서로 사용하고 다음과 같이 압축을 활성화합니다.
scp -c blowfish -r -C /nix/store/* your_user@host_name:/path/to/store/copy