diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-10-02T18·08-0400 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-10-02T18·08-0400 |
commit | 9958bd6992e2b3e7bacb493a372d17d5a5b95d90 (patch) | |
tree | 48371e99e9ca79b8caa6152c1efed6174dd4e0c5 /doc/manual/nix-store.xml | |
parent | e666e1156fba936dce93ccfa2486f67369a97129 (diff) |
Add operation ‘nix-store --repair-path’
This operation allows fixing corrupted or accidentally deleted store paths by redownloading them using substituters, if available. Since the corrupted path cannot be replaced atomically, there is a very small time window (one system call) during which neither the old (corrupted) nor the new (repaired) contents are available. So repairing should be used with some care on critical packages like Glibc.
Diffstat (limited to 'doc/manual/nix-store.xml')
-rw-r--r-- | doc/manual/nix-store.xml | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/manual/nix-store.xml b/doc/manual/nix-store.xml index cb77b3147c79..633dcd871ba7 100644 --- a/doc/manual/nix-store.xml +++ b/doc/manual/nix-store.xml @@ -850,6 +850,52 @@ $ nix-store --verify-path $(nix-store -qR $(which svn)) <!--######################################################################--> +<refsection><title>Operation <option>--repair-path</option></title> + +<refsection> + <title>Synopsis</title> + <cmdsynopsis> + <command>nix-store</command> + <arg choice='plain'><option>--repair-path</option></arg> + <arg choice='plain' rep='repeat'><replaceable>paths</replaceable></arg> + </cmdsynopsis> +</refsection> + +<refsection><title>Description</title> + +<para>The operation <option>--repair-path</option> attempts to +“repair” the specified paths by redownloading them using the available +substituters. If no substitutes are available, then repair is not +possible.</para> + +<warning><para>During repair, there is a very small time window during +which the old path (if it exists) is moved out of the way and replaced +with the new path. If repair is interrupted in between, then the +system may be left in a broken state (e.g., if the path contains a +critical system component like the GNU C Library).</para></warning> + +</refsection> + +<refsection><title>Example</title> + +<screen> +$ nix-store --verify-path /nix/store/cj7a81wsm1ijwwpkks3725661h3263p5-glibc-2.13 +path `/nix/store/cj7a81wsm1ijwwpkks3725661h3263p5-glibc-2.13' was modified! + expected hash `2db57715ae90b7e31ff1f2ecb8c12ec1cc43da920efcbe3b22763f36a1861588', + got `481c5aa5483ebc97c20457bb8bca24deea56550d3985cda0027f67fe54b808e4' + +$ nix-store --repair-path /nix/store/cj7a81wsm1ijwwpkks3725661h3263p5-glibc-2.13 +fetching path `/nix/store/cj7a81wsm1ijwwpkks3725661h3263p5-glibc-2.13'... +… +</screen> + +</refsection> + +</refsection> + + +<!--######################################################################--> + <refsection xml:id='refsec-nix-store-dump'><title>Operation <option>--dump</option></title> <refsection> |