@node Invoking guix-daemon
@section Invoking @command{guix-daemon}
-
+@cindex @command{guix-daemon}
The @command{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
@cindex package installation
@cindex package removal
@cindex profile
+@cindex @command{guix package}
The @command{guix package} command is the tool that allows users to
install, upgrade, and remove packages, as well as rolling back to
previous configurations. These operations work on a user
@cindex garbage collector
@cindex disk space
+@cindex @command{guix gc}
Packages that are installed, but not used, may be @dfn{garbage-collected}.
The @command{guix gc} command allows users to explicitly run the garbage
collector to reclaim space from the @file{/gnu/store} directory. It is
@cindex reproducibility
@cindex replicating Guix
+@cindex @command{guix describe}
Often you may want to answer questions like: ``Which revision of Guix am I
using?'' or ``Which channels am I using?'' This is useful information in many
situations: if you want to @emph{replicate} an environment on a different
@cindex reproducible build environments
@cindex development environments
@cindex @command{guix environment}
+@cindex @command{guix shell}
@cindex environment, package build environment
The purpose of @command{guix shell} is to make it easy to create one-off
software environments, without changing one's profile. It is typically
@node Invoking guix environment
@section Invoking @command{guix environment}
+@cindex @command{guix environment}
+
The purpose of @command{guix environment} is to assist in creating
development environments.
@node Invoking guix pack
@section Invoking @command{guix pack}
+@cindex @command{guix pack}
+
Occasionally you want to pass software to people who are not (yet!)
lucky enough to be using Guix. You'd tell them to run @command{guix
package -i @var{something}}, but that's not possible in this case. This
@node Invoking guix git authenticate
@section Invoking @command{guix git authenticate}
+@cindex @command{guix git authenticate}
+
The @command{guix git authenticate} command authenticates a Git checkout
following the same rule as for channels (@pxref{channel-authentication,
channel authentication}). That is, starting from a given commit, it
@node Invoking guix repl
@section Invoking @command{guix repl}
+@cindex @command{guix repl}
@cindex REPL, read-eval-print loop, script
The @command{guix repl} command makes it easier to program Guix in Guile
by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive
@node Invoking guix style
@section Invoking @command{guix style}
+@cindex @command{guix style}
The @command{guix style} command helps users and packagers alike style
their package definitions and configuration files according to the
latest fashionable trends. It can either reformat whole files, with the
@node Invoking guix copy
@section Invoking @command{guix copy}
+@cindex @command{guix copy}
@cindex copy, of store items, over SSH
@cindex SSH, copy of store items
@cindex sharing store items across machines
@node Invoking guix weather
@section Invoking @command{guix weather}
+@cindex @command{guix weather}
Occasionally you're grumpy because substitutes are lacking and you end
up building packages by yourself (@pxref{Substitutes}). The
@command{guix weather} command reports on substitute availability on the
@node Invoking guix processes
@section Invoking @command{guix processes}
+@cindex @command{guix processes}
The @command{guix processes} command can be useful to developers and system
administrators, especially on multi-user machines and on build farms: it lists
the current sessions (connections to the daemon), as well as information about
@node Invoking guix system
@section Invoking @command{guix system}
+@cindex @command{guix system}
Once you have written an operating system declaration as seen in the
previous section, it can be @dfn{instantiated} using the @command{guix
system} command. The synopsis is:
@node Invoking guix deploy
@section Invoking @command{guix deploy}
+@cindex @command{guix deploy}
We've already seen @code{operating-system} declarations used to manage a
machine's configuration locally. Suppose you need to configure multiple
machines, though---perhaps you're managing a service on the web that's
@node Invoking guix home
@section Invoking @command{guix home}
+@cindex @command{guix home}
+
Once you have written a home environment declaration (@pxref{Declaring
the Home Environment,,,,}, it can be @dfn{instantiated} using the
@command{guix home} command. The synopsis is: