Often, packages defined in Guix have a single output—i.e., the
source package leads to exactly one directory in the store. When running
guix install 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
glibc contains all the C header files, shared libraries,
static libraries, Info documentation, and other supporting files.
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 install glib
The command to install its documentation is:
guix install glib:doc
Some packages install programs with different “dependency footprints”.
For instance, the WordNet package installs 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. The
guix size command can help
find out about such situations (see 调用guix size).
graph can also be helpful (see 调用guix graph).
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
for debugging information (see 安装调试文件). The outputs
of a packages are listed in the third column of the output of
package --list-available (see 调用guix package).