The guix-build command builds packages or derivations and their dependencies, and prints the resulting store paths. It is mainly useful for distribution developers. The general syntax is:
guix-build options package-or-derivation...
package-or-derivation may be either the name of a package found in
the software distribution such as coreutils, or a derivation such
as /nix/store/xxx-coreutils-8.19.drv. Alternatively, the
--expression option may be used to specify a Scheme expression
that evaluates to a package; this is useful when disambiguation among
several same-named packages or package variants is needed.
The options may be zero or more of the following:
--expression=expr-e exprFor example, expr may be (@ (distro packages guile)
guile-1.8), which unambiguously designates this specific variant of
version 1.8 of Guile.
--source-SFor instance, guix-build -S gcc returns something like
/nix/store/xxx-gcc-4.7.2.tar.bz2, which is GCC's source tarball.
--system=system-s systemi686-linux—instead of
the host's system type.
An example use of this is on Linux-based systems, which can emulate
different personalities. For instance, passing
--system=i686-linux on an x86_64-linux system allows users
to build packages in a complete 32-bit environment.
--derivations-d--keep-failed-K--dry-run-n--no-substitutes--cores=n-c n0 means to use as many CPU cores as available.
--root=file-r file--verbosity=levelBehind the scenes, guix-build is essentially an interface to
the package-derivation procedure of the (guix packages)
module, and to the build-derivations procedure of the (guix
store) module.