Derzeit benutze ich:
find /nix/store/* -maxdepth 1 | xargs -L <N> nix-copy-closure --sign --gzip --use-substitutes --to <remote machine>
Wo N
ist eine vernünftige Zahl, die zu lange nicht die Zeilenlänge machen xargs
.
Gibt es eine idiomatischere Methode, um dies auf zwei laufenden Maschinen zu tun?
bearbeiten:
Vorteile der obigen Methode:
- Kopiert keine an beiden Enden vorhandenen Verschlüsse. Dies bedeutet auch, dass Sie eine Übertragung stoppen und dort weitermachen können, wo Sie aufgehört haben
--use-substitues
Dadurch wird der Remotecomputer zuerst aus den Binärcaches heruntergeladen und dann der Computer an zweiter Stelle gesendet. Dies ist ideal, wenn Sie häufig Dateien von meinem Laptop an einen Entfernungsserver senden, auf dem der Remote-Server im Vergleich zu meinem Laptop häufig die 100-fache Bandbreite zum Binärcache von nix hatnix-copy-closure
kopiert über ssh, damit die Übertragung verschlüsselt wird.- Meines Wissens nach sollte nix-copy-schloss keine anderen Vorgänge im nix-Speicher stören.
/nix/store/*
ergibt sich die Shell-Erweiterung-bash: /run/current-system/sw/bin/find: Argument list too long
.find /nix/store -maxdepth 1
hat dieses Problem nicht.Antworten:
Ich bevorzuge es
nix-serve
, Pakete zwischen Laptops zu teilenWeitere Optionen zum Freigeben von Nix-Paketen zwischen Computern, die im Nix-Handbuch beschrieben sind
quelle
--enable-ssl
"Aktiviert SSL auf allen TCP-Ports" ist jedoch als experimentell markiert.Ich benutze lieber
scp
. Der folgende Befehl kopiert alles rekursiv auf Ihren Remote-Computer:Wenn Sie Änderungszeiten, Zugriffszeiten und Modi aus der Originaldatei beibehalten möchten, verwenden Sie das
-p
Flag.Um die scp-Leistung zu optimieren und die Geschwindigkeit zu erhöhen, verwenden Sie Blowfish als Chiper und aktivieren Sie die Komprimierung wie folgt:
quelle