Previous: Setting Up the Daemon, Up: Installation [Contents][Index]
guix-daemonThe guix-daemon program implements all the functionality to
access the store. This includes launching build processes, running the
garbage collector, querying the availability of a build result, etc. It
is normally run as root like this:
# guix-daemon --build-users-group=guix-builder
For details on how to set it up, Setting Up the Daemon.
By default, guix-daemon launches build processes under
different UIDs, taken from the build group specified with
--build-users-group. In addition, each build process is run in a
chroot environment that only contains the subset of the store that the
build process depends on, as specified by its derivation
(see derivation), plus a set of specific
system directories. By default, the latter contains /dev and
/dev/pts.
The following command-line options are supported:
--build-users-group=groupTake users from group to run build processes (see build users).
--no-substitutesDo not use substitutes for build products. That is, always build things locally instead of allowing downloads of pre-built binaries.
--cache-failuresCache build failures. By default, only successful builds are cached.
--cores=n-c nUse n CPU cores to build each derivation; 0 means as many
as available.
The default value is 1, but it may be overridden by clients, such
as the --cores option of guix build (see Invoking guix build).
The effect is to define the NIX_BUILD_CORES environment variable
in the build process, which can then use it to exploit internal
parallelism—for instance, by running make -j$NIX_BUILD_CORES.
--max-jobs=n-M nAllow at most n build jobs in parallel. The default value is
1.
--debugProduce debugging output.
This is useful to debug daemon start-up issues, but then it may be
overridden by clients, for example the --verbosity option of
guix build (see Invoking guix build).
--chroot-directory=dirAdd dir to the build chroot.
Doing this may change the result of build processes—for instance if they use optional dependencies found in dir when it is available, and not otherwise. For that reason, it is not recommended to do so. Instead, make sure that each derivation declares all the inputs that it needs.
--disable-chrootDisable chroot builds.
Using this option is not recommended since, again, it would allow build processes to gain access to undeclared dependencies.
--disable-log-compressionDisable compression of the build logs.
Unless --lose-logs is used, all the build logs are kept in the
localstatedir. To save space, the daemon automatically compresses
them with bzip2 by default. This option disables that.
--disable-store-optimizationDisable automatic file “deduplication” in the store.
By default, files added to the store are automatically “deduplicated”: if a newly added file is identical as another one found in the store, the daemon makes the new file a hard link to the other file. This slightly increases the input/output load at the end of a build process. This option disables this.
--impersonate-linux-2.6On Linux-based systems, impersonate Linux 2.6. This means that the
kernel’s uname system call will report 2.6 as the release number.
This might be helpful to build programs that (usually wrongfully) depend on the kernel version number.
--lose-logsDo not keep build logs. By default they are kept under
localstatedir/nix/log.
--system=systemAssume system as the current system type. By default it is the
architecture/kernel pair found at configure time, such as
x86_64-linux.
--listen=socketListen for connections on socket, the file name of a Unix-domain socket. The default socket is localstatedir/daemon-socket/socket. This option is only useful in exceptional circumstances, such as if you need to run several daemons on the same machine.
Previous: Setting Up the Daemon, Up: Installation [Contents][Index]