mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
Change the default store file name to /gnu/store.
* configure.ac: Change the default 'storedir' to /gnu/store. Print $storedir. * doc/guix.texi: Replace "/nix/store" by "/gnu/store", except where describing Nix compatibility. * Makefile.am: Likewise.
This commit is contained in:
parent
59f704dff6
commit
834129e0e2
3 changed files with 30 additions and 26 deletions
|
@ -263,7 +263,7 @@ gen-ChangeLog:
|
||||||
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
|
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Make sure we're not shipping a file that embeds a local /nix/store file name.
|
# Make sure we're not shipping a file that embeds a local /gnu/store file name.
|
||||||
assert-no-store-file-names:
|
assert-no-store-file-names:
|
||||||
if grep -r --exclude=*.texi --exclude=*.info \
|
if grep -r --exclude=*.texi --exclude=*.info \
|
||||||
"$(storedir)/[a-z0-9]{32}-" $(distdir) ; \
|
"$(storedir)/[a-z0-9]{32}-" $(distdir) ; \
|
||||||
|
|
|
@ -26,11 +26,15 @@ GUIX_ASSERT_SUPPORTED_SYSTEM
|
||||||
|
|
||||||
AC_ARG_WITH(store-dir,
|
AC_ARG_WITH(store-dir,
|
||||||
AC_HELP_STRING([--with-store-dir=PATH],
|
AC_HELP_STRING([--with-store-dir=PATH],
|
||||||
[path of the store (defaults to /nix/store)]),
|
[file name of the store (defaults to /gnu/store)]),
|
||||||
[storedir="$withval"],
|
[storedir="$withval"],
|
||||||
[storedir="/nix/store"])
|
[storedir="/gnu/store"])
|
||||||
AC_SUBST(storedir)
|
AC_SUBST(storedir)
|
||||||
|
|
||||||
|
dnl Better be verbose.
|
||||||
|
AC_MSG_CHECKING([for the store directory])
|
||||||
|
AC_MSG_RESULT([$storedir])
|
||||||
|
|
||||||
AC_ARG_ENABLE([daemon],
|
AC_ARG_ENABLE([daemon],
|
||||||
[AS_HELP_STRING([--disable-daemon], [build the Nix daemon (C++)])],
|
[AS_HELP_STRING([--disable-daemon], [build the Nix daemon (C++)])],
|
||||||
[guix_build_daemon="$enableval"],
|
[guix_build_daemon="$enableval"],
|
||||||
|
|
|
@ -102,7 +102,7 @@ explicit inputs are visible.
|
||||||
The result of package build functions is @dfn{cached} in the file
|
The result of package build functions is @dfn{cached} in the file
|
||||||
system, in a special directory called @dfn{the store} (@pxref{The
|
system, in a special directory called @dfn{the store} (@pxref{The
|
||||||
Store}). Each package is installed in a directory of its own, in the
|
Store}). Each package is installed in a directory of its own, in the
|
||||||
store---by default under @file{/nix/store}. The directory name contains
|
store---by default under @file{/gnu/store}. The directory name contains
|
||||||
a hash of all the inputs used to build that package; thus, changing an
|
a hash of all the inputs used to build that package; thus, changing an
|
||||||
input yields a different directory name.
|
input yields a different directory name.
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ between both. To do so, you must pass @command{configure} not only the
|
||||||
same @code{--with-store-dir} value, but also the same
|
same @code{--with-store-dir} value, but also the same
|
||||||
@code{--localstatedir} value. The latter is essential because it
|
@code{--localstatedir} value. The latter is essential because it
|
||||||
specifies where the database that stores metadata about the store is
|
specifies where the database that stores metadata about the store is
|
||||||
located, among other things. The default values are
|
located, among other things. The default values for Nix are
|
||||||
@code{--with-store-dir=/nix/store} and @code{--localstatedir=/nix/var}.
|
@code{--with-store-dir=/nix/store} and @code{--localstatedir=/nix/var}.
|
||||||
Note that @code{--disable-daemon} is not required if
|
Note that @code{--disable-daemon} is not required if
|
||||||
your goal is to share the store with Nix.
|
your goal is to share the store with Nix.
|
||||||
|
@ -195,7 +195,7 @@ environment.
|
||||||
|
|
||||||
In a standard multi-user setup, Guix and its daemon---the
|
In a standard multi-user setup, Guix and its daemon---the
|
||||||
@command{guix-daemon} program---are installed by the system
|
@command{guix-daemon} program---are installed by the system
|
||||||
administrator; @file{/nix/store} is owned by @code{root} and
|
administrator; @file{/gnu/store} is owned by @code{root} and
|
||||||
@command{guix-daemon} runs as @code{root}. Unprivileged users may use
|
@command{guix-daemon} runs as @code{root}. Unprivileged users may use
|
||||||
Guix tools to build packages or otherwise access the store, and the
|
Guix tools to build packages or otherwise access the store, and the
|
||||||
daemon will do it on their behalf, ensuring that the store is kept in a
|
daemon will do it on their behalf, ensuring that the store is kept in a
|
||||||
|
@ -577,7 +577,7 @@ management tools it provides.
|
||||||
|
|
||||||
When using Guix, each package ends up in the @dfn{package store}, in its
|
When using Guix, each package ends up in the @dfn{package store}, in its
|
||||||
own directory---something that resembles
|
own directory---something that resembles
|
||||||
@file{/nix/store/xxx-package-1.2}, where @code{xxx} is a base32 string.
|
@file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string.
|
||||||
|
|
||||||
Instead of referring to these directories, users have their own
|
Instead of referring to these directories, users have their own
|
||||||
@dfn{profile}, which points to the packages that they actually want to
|
@dfn{profile}, which points to the packages that they actually want to
|
||||||
|
@ -586,10 +586,10 @@ use. These profiles are stored within each user's home directory, at
|
||||||
|
|
||||||
For example, @code{alice} installs GCC 4.7.2. As a result,
|
For example, @code{alice} installs GCC 4.7.2. As a result,
|
||||||
@file{/home/alice/.guix-profile/bin/gcc} points to
|
@file{/home/alice/.guix-profile/bin/gcc} points to
|
||||||
@file{/nix/store/@dots{}-gcc-4.7.2/bin/gcc}. Now, on the same machine,
|
@file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Now, on the same machine,
|
||||||
@code{bob} had already installed GCC 4.8.0. The profile of @code{bob}
|
@code{bob} had already installed GCC 4.8.0. The profile of @code{bob}
|
||||||
simply continues to point to
|
simply continues to point to
|
||||||
@file{/nix/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC
|
@file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC
|
||||||
coexist on the same system without any interference.
|
coexist on the same system without any interference.
|
||||||
|
|
||||||
The @command{guix package} command is the central tool to manage
|
The @command{guix package} command is the central tool to manage
|
||||||
|
@ -621,7 +621,7 @@ collected.
|
||||||
@cindex reproducible builds
|
@cindex reproducible builds
|
||||||
Finally, Guix takes a @dfn{purely functional} approach to package
|
Finally, Guix takes a @dfn{purely functional} approach to package
|
||||||
management, as described in the introduction (@pxref{Introduction}).
|
management, as described in the introduction (@pxref{Introduction}).
|
||||||
Each @file{/nix/store} package directory name contains a hash of all the
|
Each @file{/gnu/store} package directory name contains a hash of all the
|
||||||
inputs that were used to build that package---compiler, libraries, build
|
inputs that were used to build that package---compiler, libraries, build
|
||||||
scripts, etc. This direct correspondence allows users to make sure a
|
scripts, etc. This direct correspondence allows users to make sure a
|
||||||
given package installation matches the current state of their
|
given package installation matches the current state of their
|
||||||
|
@ -632,7 +632,7 @@ machines (@pxref{Invoking guix-daemon, container}).
|
||||||
|
|
||||||
@cindex substitute
|
@cindex substitute
|
||||||
This foundation allows Guix to support @dfn{transparent binary/source
|
This foundation allows Guix to support @dfn{transparent binary/source
|
||||||
deployment}. When a pre-built binary for a @file{/nix/store} path is
|
deployment}. When a pre-built binary for a @file{/gnu/store} path is
|
||||||
available from an external source---a @dfn{substitute}, Guix just
|
available from an external source---a @dfn{substitute}, Guix just
|
||||||
downloads it@footnote{@c XXX: Remove me when outdated.
|
downloads it@footnote{@c XXX: Remove me when outdated.
|
||||||
As of version @value{VERSION}, substitutes are downloaded from
|
As of version @value{VERSION}, substitutes are downloaded from
|
||||||
|
@ -965,10 +965,10 @@ guix package}).
|
||||||
@cindex garbage collector
|
@cindex garbage collector
|
||||||
Packages that are installed but not used may be @dfn{garbage-collected}.
|
Packages that are installed but not used may be @dfn{garbage-collected}.
|
||||||
The @command{guix gc} command allows users to explicitly run the garbage
|
The @command{guix gc} command allows users to explicitly run the garbage
|
||||||
collector to reclaim space from the @file{/nix/store} directory.
|
collector to reclaim space from the @file{/gnu/store} directory.
|
||||||
|
|
||||||
The garbage collector has a set of known @dfn{roots}: any file under
|
The garbage collector has a set of known @dfn{roots}: any file under
|
||||||
@file{/nix/store} reachable from a root is considered @dfn{live} and
|
@file{/gnu/store} reachable from a root is considered @dfn{live} and
|
||||||
cannot be deleted; any other file is considered @dfn{dead} and may be
|
cannot be deleted; any other file is considered @dfn{dead} and may be
|
||||||
deleted. The set of garbage collector roots includes default user
|
deleted. The set of garbage collector roots includes default user
|
||||||
profiles, and may be augmented with @command{guix build --root}, for
|
profiles, and may be augmented with @command{guix build --root}, for
|
||||||
|
@ -988,7 +988,7 @@ information. The available options are listed below:
|
||||||
@table @code
|
@table @code
|
||||||
@item --collect-garbage[=@var{min}]
|
@item --collect-garbage[=@var{min}]
|
||||||
@itemx -C [@var{min}]
|
@itemx -C [@var{min}]
|
||||||
Collect garbage---i.e., unreachable @file{/nix/store} files and
|
Collect garbage---i.e., unreachable @file{/gnu/store} files and
|
||||||
sub-directories. This is the default operation when no option is
|
sub-directories. This is the default operation when no option is
|
||||||
specified.
|
specified.
|
||||||
|
|
||||||
|
@ -1161,7 +1161,7 @@ containing the @code{gui} output of the @code{git} package and the main
|
||||||
output of @code{emacs}:
|
output of @code{emacs}:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
guix archive --export git:gui /nix/store/...-emacs-24.3 > great.nar
|
guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
If the specified packages are not built yet, @command{guix archive}
|
If the specified packages are not built yet, @command{guix archive}
|
||||||
|
@ -1183,7 +1183,7 @@ turned into concrete build actions.
|
||||||
|
|
||||||
Build actions are performed by the Guix daemon, on behalf of users. In a
|
Build actions are performed by the Guix daemon, on behalf of users. In a
|
||||||
standard setup, the daemon has write access to the store---the
|
standard setup, the daemon has write access to the store---the
|
||||||
@file{/nix/store} directory---whereas users do not. The recommended
|
@file{/gnu/store} directory---whereas users do not. The recommended
|
||||||
setup also has the daemon perform builds in chroots, under a specific
|
setup also has the daemon perform builds in chroots, under a specific
|
||||||
build users, to minimize interference with the rest of the system.
|
build users, to minimize interference with the rest of the system.
|
||||||
|
|
||||||
|
@ -1340,7 +1340,7 @@ definition to a new upstream version can be partly automated by the
|
||||||
|
|
||||||
Behind the scenes, a derivation corresponding to the @code{<package>}
|
Behind the scenes, a derivation corresponding to the @code{<package>}
|
||||||
object is first computed by the @code{package-derivation} procedure.
|
object is first computed by the @code{package-derivation} procedure.
|
||||||
That derivation is stored in a @code{.drv} file under @file{/nix/store}.
|
That derivation is stored in a @code{.drv} file under @file{/gnu/store}.
|
||||||
The build actions it prescribes may then be realized by using the
|
The build actions it prescribes may then be realized by using the
|
||||||
@code{build-derivations} procedure (@pxref{The Store}).
|
@code{build-derivations} procedure (@pxref{The Store}).
|
||||||
|
|
||||||
|
@ -1379,7 +1379,7 @@ Configure and Build System}).
|
||||||
@cindex store paths
|
@cindex store paths
|
||||||
|
|
||||||
Conceptually, the @dfn{store} is where derivations that have been
|
Conceptually, the @dfn{store} is where derivations that have been
|
||||||
successfully built are stored---by default, under @file{/nix/store}.
|
successfully built are stored---by default, under @file{/gnu/store}.
|
||||||
Sub-directories in the store are referred to as @dfn{store paths}. The
|
Sub-directories in the store are referred to as @dfn{store paths}. The
|
||||||
store has an associated database that contains information such has the
|
store has an associated database that contains information such has the
|
||||||
store paths referred to by each store path, and the list of @emph{valid}
|
store paths referred to by each store path, and the list of @emph{valid}
|
||||||
|
@ -1524,7 +1524,7 @@ to a Bash executable in the store:
|
||||||
(derivation store "foo"
|
(derivation store "foo"
|
||||||
bash `("-e" ,builder)
|
bash `("-e" ,builder)
|
||||||
#:env-vars '(("HOME" . "/homeless"))))
|
#:env-vars '(("HOME" . "/homeless"))))
|
||||||
@result{} #<derivation /nix/store/@dots{}-foo.drv => /nix/store/@dots{}-foo>
|
@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>
|
||||||
@end lisp
|
@end lisp
|
||||||
|
|
||||||
As can be guessed, this primitive is cumbersome to use directly. An
|
As can be guessed, this primitive is cumbersome to use directly. An
|
||||||
|
@ -1568,13 +1568,13 @@ containing one file:
|
||||||
|
|
||||||
@lisp
|
@lisp
|
||||||
(let ((builder '(let ((out (assoc-ref %outputs "out")))
|
(let ((builder '(let ((out (assoc-ref %outputs "out")))
|
||||||
(mkdir out) ; create /nix/store/@dots{}-goo
|
(mkdir out) ; create /gnu/store/@dots{}-goo
|
||||||
(call-with-output-file (string-append out "/test")
|
(call-with-output-file (string-append out "/test")
|
||||||
(lambda (p)
|
(lambda (p)
|
||||||
(display '(hello guix) p))))))
|
(display '(hello guix) p))))))
|
||||||
(build-expression->derivation store "goo" builder))
|
(build-expression->derivation store "goo" builder))
|
||||||
|
|
||||||
@result{} #<derivation /nix/store/@dots{}-goo.drv => @dots{}>
|
@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>
|
||||||
@end lisp
|
@end lisp
|
||||||
|
|
||||||
@cindex strata of code
|
@cindex strata of code
|
||||||
|
@ -1652,7 +1652,7 @@ effect, one must use @code{run-with-store}:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
(run-with-store (open-connection) (profile.sh))
|
(run-with-store (open-connection) (profile.sh))
|
||||||
@result{} /nix/store/...-profile.sh
|
@result{} /gnu/store/...-profile.sh
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
The main syntactic forms to deal with monads in general are described
|
The main syntactic forms to deal with monads in general are described
|
||||||
|
@ -1727,7 +1727,7 @@ like this:
|
||||||
grep "/bin:" sed "/bin\n"))
|
grep "/bin:" sed "/bin\n"))
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
In this example, the resulting @file{/nix/store/@dots{}-profile.sh} file
|
In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file
|
||||||
will references @var{coreutils}, @var{grep}, and @var{sed}, thereby
|
will references @var{coreutils}, @var{grep}, and @var{sed}, thereby
|
||||||
preventing them from being garbage-collected during its lifetime.
|
preventing them from being garbage-collected during its lifetime.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -1787,7 +1787,7 @@ guix build @var{options} @var{package-or-derivation}@dots{}
|
||||||
@var{package-or-derivation} may be either the name of a package found in
|
@var{package-or-derivation} may be either the name of a package found in
|
||||||
the software distribution such as @code{coreutils} or
|
the software distribution such as @code{coreutils} or
|
||||||
@code{coreutils-8.20}, or a derivation such as
|
@code{coreutils-8.20}, or a derivation such as
|
||||||
@file{/nix/store/@dots{}-coreutils-8.19.drv}. In the former case, a
|
@file{/gnu/store/@dots{}-coreutils-8.19.drv}. In the former case, a
|
||||||
package with the corresponding name (and optionally version) is searched
|
package with the corresponding name (and optionally version) is searched
|
||||||
for among the GNU distribution modules (@pxref{Package Modules}).
|
for among the GNU distribution modules (@pxref{Package Modules}).
|
||||||
|
|
||||||
|
@ -1818,7 +1818,7 @@ Build the packages' source derivations, rather than the packages
|
||||||
themselves.
|
themselves.
|
||||||
|
|
||||||
For instance, @code{guix build -S gcc} returns something like
|
For instance, @code{guix build -S gcc} returns something like
|
||||||
@file{/nix/store/@dots{}-gcc-4.7.2.tar.bz2}, which is GCC's source tarball.
|
@file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is GCC's source tarball.
|
||||||
|
|
||||||
The returned source tarball is the result of applying any patches and
|
The returned source tarball is the result of applying any patches and
|
||||||
code snippets specified in the package's @code{origin} (@pxref{Defining
|
code snippets specified in the package's @code{origin} (@pxref{Defining
|
||||||
|
@ -2475,7 +2475,7 @@ etc., at which point we have a working C tool chain.
|
||||||
Bootstrapping is complete when we have a full tool chain that does not
|
Bootstrapping is complete when we have a full tool chain that does not
|
||||||
depend on the pre-built bootstrap tools discussed above. This
|
depend on the pre-built bootstrap tools discussed above. This
|
||||||
no-dependency requirement is verified by checking whether the files of
|
no-dependency requirement is verified by checking whether the files of
|
||||||
the final tool chain contain references to the @file{/nix/store}
|
the final tool chain contain references to the @file{/gnu/store}
|
||||||
directories of the bootstrap inputs. The process that leads to this
|
directories of the bootstrap inputs. The process that leads to this
|
||||||
``final'' tool chain is described by the package definitions found in
|
``final'' tool chain is described by the package definitions found in
|
||||||
the @code{(gnu packages base)} module.
|
the @code{(gnu packages base)} module.
|
||||||
|
|
Loading…
Reference in a new issue