現在私は以下を使用しています:
find /nix/store/* -maxdepth 1 | xargs -L <N> nix-copy-closure --sign --gzip --use-substitutes --to <remote machine>
N
行の長さを長くしない合理的な数字はどこにありますかxargs
?
2台の実行しているコンピュータでこれを行うためのより慣用的な方法はありますか?
編集する:
上記の方法の利点:
- 両端に存在するクロージャはコピーされません。これはまた、転送を中止してハッシュチェックオーバーヘッドを実行する前に中断した部分から続行できることを意味します。
--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