Often, packages defined in Guix have a single output—i.e., the
source package leads exactly one directory in the store. When running
guix package -i glibc, one installs the default output of the
GNU libc package; the default output is called
out, but its name
can be omitted as shown in this command. In this particular case, the
default output of
glibc contains all the C header files, shared
libraries, static libraries, Info documentation, and other supporting
Sometimes it is more appropriate to separate the various types of files
produced from a single source package into separate outputs. For
instance, the GLib C library (used by GTK+ and related packages)
installs more than 20 MiB of reference documentation as HTML pages.
To save space for users who do not need it, the documentation goes to a
separate output, called
doc. To install the main GLib output,
which contains everything but the documentation, one would run:
guix package -i glib
The command to install its documentation is:
guix package -i glib:doc
Some packages install programs with different “dependency footprints”. For instance, the WordNet package install both command-line tools and graphical user interfaces (GUIs). The former depend solely on the C library, whereas the latter depend on Tcl/Tk and the underlying X libraries. In this case, we leave the command-line tools in the default output, whereas the GUIs are in a separate output. This allows users who do not need the GUIs to save space.
There are several such multiple-output packages in the GNU distribution.
Other conventional output names include
lib for libraries and
possibly header files,
bin for stand-alone programs, and
debug for debugging information (see Installing Debugging Files). The outputs of a packages are listed in the third column of
the output of
guix package --list-available (see Invoking guix package).