mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-25 15:26:17 +02:00
make a more relevant example for nix-store --export
given `nix-copy-closure` exists, it doesn't make much sense to do nix-store --export $paths | nix-store --import --store ssh://foo@bar since that dumps everything rather than granularly transferring store objects as needed. therefore, pick an example where dumping the entire closure into a file actually makes a difference, such as when deploying to airgapped systems.
This commit is contained in:
parent
49bd408c10
commit
d50ce2df14
1 changed files with 18 additions and 12 deletions
|
@ -27,15 +27,21 @@ Nix store, the import will fail.
|
||||||
|
|
||||||
# Examples
|
# Examples
|
||||||
|
|
||||||
To copy a whole closure, do something
|
> **Example**
|
||||||
like:
|
>
|
||||||
|
> Deploy GNU Hello to an airgapped machine via USB stick.
|
||||||
```console
|
>
|
||||||
$ nix-store --export $(nix-store --query --requisites paths) > out
|
> Write the closure to the block device on a machine with internet connection:
|
||||||
```
|
>
|
||||||
|
> ```shell-session
|
||||||
To import the whole closure again, run:
|
> [alice@itchy]$ storePath=$(nix-build '<nixpkgs>' -I nixpkgs=channel:nixpkgs-unstable -A hello --no-out-link)
|
||||||
|
> [alice@itchy]$ nix-store --export $(nix-store --query --requisites $storePath) | sudo dd of=/dev/usb
|
||||||
```console
|
> ```
|
||||||
$ nix-store --import < out
|
>
|
||||||
```
|
> Read the closure from the block device on the machine without internet connection:
|
||||||
|
>
|
||||||
|
> ```shell-session
|
||||||
|
> [bob@scratchy]$ hello=$(sudo dd if=/dev/usb | nix-store --import | tail -1)
|
||||||
|
> [bob@scratchy]$ $hello/bin/hello
|
||||||
|
> Hello, world!
|
||||||
|
> ```
|
||||||
|
|
Loading…
Reference in a new issue