Next: Invoking guix locate
, Previous: Substitutes, Up: Package Management [Contents][Index]
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 output of 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
While the colon syntax works for command-line specification of package
outputs, it will not work when using a package variable in Scheme
code. For example, to add the documentation of glib
to the
globally installed packages of an operating-system
(see
operating-system
Reference), a list of two items, the first one
being the package variable and the second one the name of the
output to select (a string), must be used instead:
(use-modules (gnu packages glib)) ;; glib-with-documentation is the Guile symbol for the glib package (operating-system ... (packages (append (list (list glib-with-documentation "doc")) %base-packages)))
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 Invoking guix size
).
guix graph
can also be helpful (see Invoking 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
debug
for debugging information (see Installing Debugging Files). The outputs of a package are listed in the third column of
the output of guix package --list-available
(see Invoking guix package
).
Next: Invoking guix locate
, Previous: Substitutes, Up: Package Management [Contents][Index]