Beste Methode zum Kopieren von full / nix / store über das Netzwerk von einem Nixos-Computer auf einen anderen

7

Derzeit benutze ich:

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

Wo Nist 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-substituesDadurch 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 hat
  • nix-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.

Online-Manpage für nix-copy-closure

Davorak
quelle
Für große Nix-Stores /nix/store/*ergibt sich die Shell-Erweiterung -bash: /run/current-system/sw/bin/find: Argument list too long. find /nix/store -maxdepth 1hat dieses Problem nicht.
nh2
Vielleicht ist es ein Tippfehler.
AleXoundOS

Antworten:

7

Ich bevorzuge es nix-serve, Pakete zwischen Laptops zu teilen

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

Weitere Optionen zum Freigeben von Nix-Paketen zwischen Computern, die im Nix-Handbuch beschrieben sind

Rok Garbas
quelle
1
Dies scheint eine gute Option zu sein. Sie können auch einen SSL-Schlüssel und ein Zertifikat in der Befehlszeile angeben. Das --enable-ssl"Aktiviert SSL auf allen TCP-Ports" ist jedoch als experimentell markiert.
Davorak
2

Ich benutze lieber scp. Der folgende Befehl kopiert alles rekursiv auf Ihren Remote-Computer:

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

Wenn Sie Änderungszeiten, Zugriffszeiten und Modi aus der Originaldatei beibehalten möchten, verwenden Sie das -pFlag.

Um die scp-Leistung zu optimieren und die Geschwindigkeit zu erhöhen, verwenden Sie Blowfish als Chiper und aktivieren Sie die Komprimierung wie folgt:

scp -c blowfish -r -C /nix/store/* your_user@host_name:/path/to/store/copy
krt
quelle
1
Ich denke, der Nix-Speicher ist normal als schreibgeschützt gemountet, um den Schreibzugriff durch Root zu verhindern, zumindest auf Nixos. Ich denke, ich müsste mich auf beiden Computern als root anmelden, um die Bereitstellung aufzuheben und den Speicher als lesbar erneut bereitzustellen, um scp verwenden zu können. Mir ist nicht klar, dass das vorübergehende Ein- und Aushängen des Geschäfts andere negative Folgen haben kann. Ich bin einfach nicht genug mit den Diensten auf Nixos vertraut, um es zu wissen.
Davorak