diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-03-09 14:47:31 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-03-09 14:49:28 +0100 |
commit | 1ddee42472ecdad3d2dbbc2482aab5e3add3abdd (patch) | |
tree | d1907087512b540d0c90847031cc53c285a2c5f6 /doc | |
parent | 00eb9fa3e23fa692db163c3eae2a3269756c7e75 (diff) | |
download | patches-1ddee42472ecdad3d2dbbc2482aab5e3add3abdd.tar patches-1ddee42472ecdad3d2dbbc2482aab5e3add3abdd.tar.gz |
doc: Add note on store immutability.
* doc/guix.texi (The Store): Mention "store items" and the database
location. Add note on the store's immutability.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/guix.texi | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 7945415d7a..06b40fac59 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2878,20 +2878,34 @@ with @code{build-expression->derivation} (@pxref{Derivations, @section The Store @cindex store +@cindex store items @cindex store paths Conceptually, the @dfn{store} is the place where derivations that have been built successfully are stored---by default, @file{/gnu/store}. -Sub-directories in the store are referred to as @dfn{store paths}. The -store has an associated database that contains information such as the -store paths referred to by each store path, and the list of @emph{valid} -store paths---paths that result from a successful build. - -The store is always accessed by the daemon on behalf of its clients +Sub-directories in the store are referred to as @dfn{store items} or +sometimes @dfn{store paths}. The store has an associated database that +contains information such as the store paths referred to by each store +path, and the list of @emph{valid} store items---results of successful +builds. This database resides in @file{/var/guix/db} (or under whatever +state directory was specified @i{via} @option{--localstatedir} at +configure time). + +The store is @emph{always} accessed by the daemon on behalf of its clients (@pxref{Invoking guix-daemon}). To manipulate the store, clients connect to the daemon over a Unix-domain socket, send requests to it, and read the result---these are remote procedure calls, or RPCs. +@quotation Note +Users must @emph{never} modify files under @file{/gnu/store} directly. +This would lead to inconsistencies and break the immutability +assumptions of Guix's functional model (@pxref{Introduction}). + +@xref{Invoking guix gc, @command{guix gc --verify}}, for information on +how to check the integrity of the store and attempt recovery from +accidental modifications. +@end quotation + The @code{(guix store)} module provides procedures to connect to the daemon, and to perform RPCs. These are described below. |