doc: Added some index entries.
* doc/guix.texi: Added various @cindex tags to assist readers.
This commit is contained in:
parent
8be62d3f20
commit
e32171eeeb
138
doc/guix.texi
138
doc/guix.texi
|
@ -286,7 +286,7 @@ users (@pxref{Setting Up the Daemon}) and for downloading pre-built
|
||||||
binaries from authorized sources (@pxref{Substitutes}).
|
binaries from authorized sources (@pxref{Substitutes}).
|
||||||
|
|
||||||
@cindex extensibility of the distribution
|
@cindex extensibility of the distribution
|
||||||
@cindex customization of packages
|
@cindex customization, of packages
|
||||||
Guix includes package definitions for many GNU and non-GNU packages, all
|
Guix includes package definitions for many GNU and non-GNU packages, all
|
||||||
of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the
|
of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the
|
||||||
user's computing freedom}. It is @emph{extensible}: users can write
|
user's computing freedom}. It is @emph{extensible}: users can write
|
||||||
|
@ -340,6 +340,7 @@ garbage collection of packages (@pxref{Features}).
|
||||||
@node Installation
|
@node Installation
|
||||||
@chapter Installation
|
@chapter Installation
|
||||||
|
|
||||||
|
@cindex installing Guix
|
||||||
GNU Guix is available for download from its website at
|
GNU Guix is available for download from its website at
|
||||||
@url{http://www.gnu.org/software/guix/}. This section describes the
|
@url{http://www.gnu.org/software/guix/}. This section describes the
|
||||||
software requirements of Guix, as well as how to install it and get
|
software requirements of Guix, as well as how to install it and get
|
||||||
|
@ -369,6 +370,7 @@ system, such as @file{/etc}, are left untouched.
|
||||||
@node Binary Installation
|
@node Binary Installation
|
||||||
@section Binary Installation
|
@section Binary Installation
|
||||||
|
|
||||||
|
@cindex installing Guix from binaries
|
||||||
This section describes how to install Guix on an arbitrary system from a
|
This section describes how to install Guix on an arbitrary system from a
|
||||||
self-contained tarball providing binaries for Guix and for all its
|
self-contained tarball providing binaries for Guix and for all its
|
||||||
dependencies. This is often quicker than installing from source, which
|
dependencies. This is often quicker than installing from source, which
|
||||||
|
@ -379,6 +381,7 @@ Installing goes along these lines:
|
||||||
|
|
||||||
@enumerate
|
@enumerate
|
||||||
@item
|
@item
|
||||||
|
@cindex downloading Guix binary
|
||||||
Download the binary tarball from
|
Download the binary tarball from
|
||||||
@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz},
|
@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz},
|
||||||
where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine
|
where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine
|
||||||
|
@ -494,6 +497,7 @@ Directories,,, texinfo, GNU Texinfo}, for more details on changing the
|
||||||
Info search path.)
|
Info search path.)
|
||||||
|
|
||||||
@item
|
@item
|
||||||
|
@cindex substitutes, authorization thereof
|
||||||
To use substitutes from @code{hydra.gnu.org} or one of its mirrors
|
To use substitutes from @code{hydra.gnu.org} or one of its mirrors
|
||||||
(@pxref{Substitutes}), authorize them:
|
(@pxref{Substitutes}), authorize them:
|
||||||
|
|
||||||
|
@ -577,6 +581,7 @@ following packages are also needed:
|
||||||
C++11 standard.
|
C++11 standard.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
@cindex state directory
|
||||||
When configuring Guix on a system that already has a Guix installation,
|
When configuring Guix on a system that already has a Guix installation,
|
||||||
be sure to specify the same state directory as the existing installation
|
be sure to specify the same state directory as the existing installation
|
||||||
using the @code{--localstatedir} option of the @command{configure}
|
using the @code{--localstatedir} option of the @command{configure}
|
||||||
|
@ -585,6 +590,7 @@ GNU Coding Standards}). The @command{configure} script protects against
|
||||||
unintended misconfiguration of @var{localstatedir} so you do not
|
unintended misconfiguration of @var{localstatedir} so you do not
|
||||||
inadvertently corrupt your store (@pxref{The Store}).
|
inadvertently corrupt your store (@pxref{The Store}).
|
||||||
|
|
||||||
|
@cindex Nix, compatibility
|
||||||
When a working installation of @url{http://nixos.org/nix/, the Nix package
|
When a working installation of @url{http://nixos.org/nix/, the Nix package
|
||||||
manager} is available, you
|
manager} is available, you
|
||||||
can instead configure Guix with @code{--disable-daemon}. In that case,
|
can instead configure Guix with @code{--disable-daemon}. In that case,
|
||||||
|
@ -603,6 +609,7 @@ your goal is to share the store with Nix.
|
||||||
@node Running the Test Suite
|
@node Running the Test Suite
|
||||||
@section Running the Test Suite
|
@section Running the Test Suite
|
||||||
|
|
||||||
|
@cindex test suite
|
||||||
After a successful @command{configure} and @code{make} run, it is a good
|
After a successful @command{configure} and @code{make} run, it is a good
|
||||||
idea to run the test suite. It can help catch issues with the setup or
|
idea to run the test suite. It can help catch issues with the setup or
|
||||||
environment, or bugs in Guix itself---and really, reporting test
|
environment, or bugs in Guix itself---and really, reporting test
|
||||||
|
@ -688,6 +695,7 @@ the daemon to download pre-built binaries.
|
||||||
@node Build Environment Setup
|
@node Build Environment Setup
|
||||||
@subsection Build Environment Setup
|
@subsection Build Environment Setup
|
||||||
|
|
||||||
|
@cindex build environment
|
||||||
In a standard multi-user setup, Guix and its daemon---the
|
In a standard multi-user setup, Guix and its daemon---the
|
||||||
@command{guix-daemon} program---are installed by the system
|
@command{guix-daemon} program---are installed by the system
|
||||||
administrator; @file{/gnu/store} is owned by @code{root} and
|
administrator; @file{/gnu/store} is owned by @code{root} and
|
||||||
|
@ -1203,6 +1211,7 @@ versions may be incompatible.
|
||||||
|
|
||||||
@subsection X11 Fonts
|
@subsection X11 Fonts
|
||||||
|
|
||||||
|
@cindex fonts
|
||||||
The majority of graphical applications use Fontconfig to locate and
|
The majority of graphical applications use Fontconfig to locate and
|
||||||
load fonts and perform X11-client-side rendering. The @code{fontconfig}
|
load fonts and perform X11-client-side rendering. The @code{fontconfig}
|
||||||
package in Guix looks for fonts in @file{$HOME/.guix-profile}
|
package in Guix looks for fonts in @file{$HOME/.guix-profile}
|
||||||
|
@ -1222,6 +1231,7 @@ for Chinese languages:
|
||||||
guix package -i font-adobe-source-han-sans:cn
|
guix package -i font-adobe-source-han-sans:cn
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@cindex @code{xterm}
|
||||||
Older programs such as @command{xterm} do not use Fontconfig and instead
|
Older programs such as @command{xterm} do not use Fontconfig and instead
|
||||||
rely on server-side font rendering. Such programs require to specify a
|
rely on server-side font rendering. Such programs require to specify a
|
||||||
full name of a font using XLFD (X Logical Font Description), like this:
|
full name of a font using XLFD (X Logical Font Description), like this:
|
||||||
|
@ -1237,11 +1247,13 @@ your Guix profile, you need to extend the font path of the X server:
|
||||||
xset +fp ~/.guix-profile/share/fonts/truetype
|
xset +fp ~/.guix-profile/share/fonts/truetype
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@cindex @code{xlsfonts}
|
||||||
After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)
|
After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)
|
||||||
to make sure your TrueType fonts are listed there.
|
to make sure your TrueType fonts are listed there.
|
||||||
|
|
||||||
@subsection X.509 Certificates
|
@subsection X.509 Certificates
|
||||||
|
|
||||||
|
@cindex @code{nss-certs}
|
||||||
The @code{nss-certs} package provides X.509 certificates, which allow
|
The @code{nss-certs} package provides X.509 certificates, which allow
|
||||||
programs to authenticate Web servers accessed over HTTPS.
|
programs to authenticate Web servers accessed over HTTPS.
|
||||||
|
|
||||||
|
@ -1252,6 +1264,7 @@ information.
|
||||||
|
|
||||||
@subsection Emacs Packages
|
@subsection Emacs Packages
|
||||||
|
|
||||||
|
@cindex @code{emacs}
|
||||||
When you install Emacs packages with Guix, the elisp files may be placed
|
When you install Emacs packages with Guix, the elisp files may be placed
|
||||||
either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in
|
either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in
|
||||||
sub-directories of
|
sub-directories of
|
||||||
|
@ -1275,6 +1288,7 @@ option (@pxref{Init File,,, emacs, The GNU Emacs Manual}).
|
||||||
@node Package Management
|
@node Package Management
|
||||||
@chapter Package Management
|
@chapter Package Management
|
||||||
|
|
||||||
|
@cindex packages
|
||||||
The purpose of GNU Guix is to allow users to easily install, upgrade, and
|
The purpose of GNU Guix is to allow users to easily install, upgrade, and
|
||||||
remove software packages, without having to know about their build
|
remove software packages, without having to know about their build
|
||||||
procedures or dependencies. Guix also goes beyond this obvious set of
|
procedures or dependencies. Guix also goes beyond this obvious set of
|
||||||
|
@ -1322,6 +1336,7 @@ The @command{guix package} command is the central tool to manage
|
||||||
packages (@pxref{Invoking guix package}). It operates on the per-user
|
packages (@pxref{Invoking guix package}). It operates on the per-user
|
||||||
profiles, and can be used @emph{with normal user privileges}.
|
profiles, and can be used @emph{with normal user privileges}.
|
||||||
|
|
||||||
|
@cindex transactions
|
||||||
The command provides the obvious install, remove, and upgrade
|
The command provides the obvious install, remove, and upgrade
|
||||||
operations. Each invocation is actually a @emph{transaction}: either
|
operations. Each invocation is actually a @emph{transaction}: either
|
||||||
the specified operation succeeds, or nothing happens. Thus, if the
|
the specified operation succeeds, or nothing happens. Thus, if the
|
||||||
|
@ -1377,6 +1392,10 @@ package into their profile (@pxref{Invoking guix environment}).
|
||||||
@node Invoking guix package
|
@node Invoking guix package
|
||||||
@section Invoking @command{guix package}
|
@section Invoking @command{guix package}
|
||||||
|
|
||||||
|
@cindex installing packages
|
||||||
|
@cindex removing packages
|
||||||
|
@cindex package installation
|
||||||
|
@cindex package removal
|
||||||
The @command{guix package} command is the tool that allows users to
|
The @command{guix package} command is the tool that allows users to
|
||||||
install, upgrade, and remove packages, as well as rolling back to
|
install, upgrade, and remove packages, as well as rolling back to
|
||||||
previous configurations. It operates only on the user's own profile,
|
previous configurations. It operates only on the user's own profile,
|
||||||
|
@ -1386,7 +1405,7 @@ is:
|
||||||
@example
|
@example
|
||||||
guix package @var{options}
|
guix package @var{options}
|
||||||
@end example
|
@end example
|
||||||
|
@cindex transactions
|
||||||
Primarily, @var{options} specifies the operations to be performed during
|
Primarily, @var{options} specifies the operations to be performed during
|
||||||
the transaction. Upon completion, a new profile is created, but
|
the transaction. Upon completion, a new profile is created, but
|
||||||
previous @dfn{generations} of the profile remain available, should the user
|
previous @dfn{generations} of the profile remain available, should the user
|
||||||
|
@ -1404,6 +1423,7 @@ whereby the user specifies the exact set of packages to be available and
|
||||||
passes it @i{via} the @option{--manifest} option
|
passes it @i{via} the @option{--manifest} option
|
||||||
(@pxref{profile-manifest, @option{--manifest}}).
|
(@pxref{profile-manifest, @option{--manifest}}).
|
||||||
|
|
||||||
|
@cindex profile
|
||||||
For each user, a symlink to the user's default profile is automatically
|
For each user, a symlink to the user's default profile is automatically
|
||||||
created in @file{$HOME/.guix-profile}. This symlink always points to the
|
created in @file{$HOME/.guix-profile}. This symlink always points to the
|
||||||
current generation of the user's default profile. Thus, users can add
|
current generation of the user's default profile. Thus, users can add
|
||||||
|
@ -1510,6 +1530,7 @@ and/or output name in addition to the package name. For instance,
|
||||||
|
|
||||||
@item --upgrade[=@var{regexp} @dots{}]
|
@item --upgrade[=@var{regexp} @dots{}]
|
||||||
@itemx -u [@var{regexp} @dots{}]
|
@itemx -u [@var{regexp} @dots{}]
|
||||||
|
@cindex upgrading packages
|
||||||
Upgrade all the installed packages. If one or more @var{regexp}s are
|
Upgrade all the installed packages. If one or more @var{regexp}s are
|
||||||
specified, upgrade only installed packages whose name matches a
|
specified, upgrade only installed packages whose name matches a
|
||||||
@var{regexp}. Also see the @code{--do-not-upgrade} option below.
|
@var{regexp}. Also see the @code{--do-not-upgrade} option below.
|
||||||
|
@ -1558,6 +1579,9 @@ of packages:
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item --roll-back
|
@item --roll-back
|
||||||
|
@cindex rolling back
|
||||||
|
@cindex undoing transactions
|
||||||
|
@cindex transactions, undoing
|
||||||
Roll back to the previous @dfn{generation} of the profile---i.e., undo
|
Roll back to the previous @dfn{generation} of the profile---i.e., undo
|
||||||
the last transaction.
|
the last transaction.
|
||||||
|
|
||||||
|
@ -1574,6 +1598,7 @@ generations in a profile is always linear.
|
||||||
|
|
||||||
@item --switch-generation=@var{pattern}
|
@item --switch-generation=@var{pattern}
|
||||||
@itemx -S @var{pattern}
|
@itemx -S @var{pattern}
|
||||||
|
@cindex generations
|
||||||
Switch to a particular generation defined by @var{pattern}.
|
Switch to a particular generation defined by @var{pattern}.
|
||||||
|
|
||||||
@var{pattern} may be either a generation number or a number prefixed
|
@var{pattern} may be either a generation number or a number prefixed
|
||||||
|
@ -1755,6 +1780,7 @@ Multiple Outputs}), and the source location of its definition.
|
||||||
|
|
||||||
@item --list-generations[=@var{pattern}]
|
@item --list-generations[=@var{pattern}]
|
||||||
@itemx -l [@var{pattern}]
|
@itemx -l [@var{pattern}]
|
||||||
|
@cindex generations
|
||||||
Return a list of generations along with their creation dates; for each
|
Return a list of generations along with their creation dates; for each
|
||||||
generation, show the installed packages, with the most recently
|
generation, show the installed packages, with the most recently
|
||||||
installed packages shown last. Note that the zeroth generation is never
|
installed packages shown last. Note that the zeroth generation is never
|
||||||
|
@ -1856,6 +1882,7 @@ your system has unpatched security vulnerabilities.
|
||||||
|
|
||||||
@cindex security
|
@cindex security
|
||||||
@cindex digital signatures
|
@cindex digital signatures
|
||||||
|
@cindex substitutes, authorization thereof
|
||||||
To allow Guix to download substitutes from @code{hydra.gnu.org} or a
|
To allow Guix to download substitutes from @code{hydra.gnu.org} or a
|
||||||
mirror thereof, you
|
mirror thereof, you
|
||||||
must add its public key to the access control list (ACL) of archive
|
must add its public key to the access control list (ACL) of archive
|
||||||
|
@ -1965,6 +1992,7 @@ like to discuss this project, join us on @email{guix-devel@@gnu.org}.
|
||||||
|
|
||||||
@cindex multiple-output packages
|
@cindex multiple-output packages
|
||||||
@cindex package outputs
|
@cindex package outputs
|
||||||
|
@cindex outputs
|
||||||
|
|
||||||
Often, packages defined in Guix have a single @dfn{output}---i.e., the
|
Often, packages defined in Guix have a single @dfn{output}---i.e., the
|
||||||
source package leads to exactly one directory in the store. When running
|
source package leads to exactly one directory in the store. When running
|
||||||
|
@ -1987,6 +2015,7 @@ which contains everything but the documentation, one would run:
|
||||||
guix package -i glib
|
guix package -i glib
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@cindex documentation
|
||||||
The command to install its documentation is:
|
The command to install its documentation is:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -2016,6 +2045,7 @@ guix package}).
|
||||||
@section Invoking @command{guix gc}
|
@section Invoking @command{guix gc}
|
||||||
|
|
||||||
@cindex garbage collector
|
@cindex garbage collector
|
||||||
|
@cindex disk space
|
||||||
Packages that are installed, but not used, may be @dfn{garbage-collected}.
|
Packages that are installed, but not used, may be @dfn{garbage-collected}.
|
||||||
The @command{guix gc} command allows users to explicitly run the garbage
|
The @command{guix gc} command allows users to explicitly run the garbage
|
||||||
collector to reclaim space from the @file{/gnu/store} directory. It is
|
collector to reclaim space from the @file{/gnu/store} directory. It is
|
||||||
|
@ -2098,6 +2128,7 @@ In addition, the references among existing store files can be queried:
|
||||||
|
|
||||||
@item --references
|
@item --references
|
||||||
@itemx --referrers
|
@itemx --referrers
|
||||||
|
@cindex package dependencies
|
||||||
List the references (respectively, the referrers) of store files given
|
List the references (respectively, the referrers) of store files given
|
||||||
as arguments.
|
as arguments.
|
||||||
|
|
||||||
|
@ -2160,6 +2191,9 @@ this option is primarily useful when the daemon was running with
|
||||||
@node Invoking guix pull
|
@node Invoking guix pull
|
||||||
@section Invoking @command{guix pull}
|
@section Invoking @command{guix pull}
|
||||||
|
|
||||||
|
@cindex upgrading Guix
|
||||||
|
@cindex @command{guix pull}
|
||||||
|
@cindex pull
|
||||||
Packages are installed or upgraded to the latest version available in
|
Packages are installed or upgraded to the latest version available in
|
||||||
the distribution currently available on your local machine. To update
|
the distribution currently available on your local machine. To update
|
||||||
that distribution, along with the Guix tools, you must run @command{guix
|
that distribution, along with the Guix tools, you must run @command{guix
|
||||||
|
@ -2202,11 +2236,14 @@ useful to Guix developers.
|
||||||
@node Invoking guix archive
|
@node Invoking guix archive
|
||||||
@section Invoking @command{guix archive}
|
@section Invoking @command{guix archive}
|
||||||
|
|
||||||
|
@cindex @command{guix archive}
|
||||||
|
@cindex archive
|
||||||
The @command{guix archive} command allows users to @dfn{export} files
|
The @command{guix archive} command allows users to @dfn{export} files
|
||||||
from the store into a single archive, and to later @dfn{import} them.
|
from the store into a single archive, and to later @dfn{import} them.
|
||||||
In particular, it allows store files to be transferred from one machine
|
In particular, it allows store files to be transferred from one machine
|
||||||
to the store on another machine.
|
to the store on another machine.
|
||||||
|
|
||||||
|
@cindex exporting store items
|
||||||
To export store files as an archive to standard output, run:
|
To export store files as an archive to standard output, run:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -2730,6 +2767,7 @@ A one-line description of the package.
|
||||||
A more elaborate description of the package.
|
A more elaborate description of the package.
|
||||||
|
|
||||||
@item @code{license}
|
@item @code{license}
|
||||||
|
@cindex license, of packages
|
||||||
The license of the package; a value from @code{(guix licenses)},
|
The license of the package; a value from @code{(guix licenses)},
|
||||||
or a list of such values.
|
or a list of such values.
|
||||||
|
|
||||||
|
@ -4263,6 +4301,8 @@ the Scheme programming interface of Guix in a convenient way.
|
||||||
@node Invoking guix build
|
@node Invoking guix build
|
||||||
@section Invoking @command{guix build}
|
@section Invoking @command{guix build}
|
||||||
|
|
||||||
|
@cindex package building
|
||||||
|
@cindex @command{guix build}
|
||||||
The @command{guix build} command builds packages or derivations and
|
The @command{guix build} command builds packages or derivations and
|
||||||
their dependencies, and prints the resulting store paths. Note that it
|
their dependencies, and prints the resulting store paths. Note that it
|
||||||
does not modify the user's profile---this is the job of the
|
does not modify the user's profile---this is the job of the
|
||||||
|
@ -4717,6 +4757,7 @@ You can freely access a huge library of build logs!
|
||||||
@node Invoking guix edit
|
@node Invoking guix edit
|
||||||
@section Invoking @command{guix edit}
|
@section Invoking @command{guix edit}
|
||||||
|
|
||||||
|
@cindex @command{guix edit}
|
||||||
@cindex package definition, editing
|
@cindex package definition, editing
|
||||||
So many packages, so many source files! The @command{guix edit} command
|
So many packages, so many source files! The @command{guix edit} command
|
||||||
facilitates the life of users and packagers by pointing their editor at
|
facilitates the life of users and packagers by pointing their editor at
|
||||||
|
@ -4747,6 +4788,8 @@ guix-search-by-name} and similar commands (@pxref{Emacs Commands}).
|
||||||
@node Invoking guix download
|
@node Invoking guix download
|
||||||
@section Invoking @command{guix download}
|
@section Invoking @command{guix download}
|
||||||
|
|
||||||
|
@cindex @command{guix download}
|
||||||
|
@cindex downloading package sources
|
||||||
When writing a package definition, developers typically need to download
|
When writing a package definition, developers typically need to download
|
||||||
a source tarball, compute its SHA256 hash, and write that
|
a source tarball, compute its SHA256 hash, and write that
|
||||||
hash in the package definition (@pxref{Defining Packages}). The
|
hash in the package definition (@pxref{Defining Packages}). The
|
||||||
|
@ -4794,6 +4837,7 @@ URL, which makes you vulnerable to ``man-in-the-middle'' attacks.
|
||||||
@node Invoking guix hash
|
@node Invoking guix hash
|
||||||
@section Invoking @command{guix hash}
|
@section Invoking @command{guix hash}
|
||||||
|
|
||||||
|
@cindex @command{guix hash}
|
||||||
The @command{guix hash} command computes the SHA256 hash of a file.
|
The @command{guix hash} command computes the SHA256 hash of a file.
|
||||||
It is primarily a convenience tool for anyone contributing to the
|
It is primarily a convenience tool for anyone contributing to the
|
||||||
distribution: it computes the cryptographic hash of a file, which can be
|
distribution: it computes the cryptographic hash of a file, which can be
|
||||||
|
@ -4858,6 +4902,7 @@ $ guix hash -rx .
|
||||||
@cindex importing packages
|
@cindex importing packages
|
||||||
@cindex package import
|
@cindex package import
|
||||||
@cindex package conversion
|
@cindex package conversion
|
||||||
|
@cindex Invoking @command{guix import}
|
||||||
The @command{guix import} command is useful for people who would like to
|
The @command{guix import} command is useful for people who would like to
|
||||||
add a package to the distribution with as little work as
|
add a package to the distribution with as little work as
|
||||||
possible---a legitimate demand. The command knows of a few
|
possible---a legitimate demand. The command knows of a few
|
||||||
|
@ -5102,6 +5147,7 @@ is welcome here (@pxref{Contributing}).
|
||||||
@node Invoking guix refresh
|
@node Invoking guix refresh
|
||||||
@section Invoking @command{guix refresh}
|
@section Invoking @command{guix refresh}
|
||||||
|
|
||||||
|
@cindex @command {guix refresh}
|
||||||
The primary audience of the @command{guix refresh} command is developers
|
The primary audience of the @command{guix refresh} command is developers
|
||||||
of the GNU software distribution. By default, it reports any packages
|
of the GNU software distribution. By default, it reports any packages
|
||||||
provided by the distribution that are outdated compared to the latest
|
provided by the distribution that are outdated compared to the latest
|
||||||
|
@ -5305,6 +5351,9 @@ otherwise.
|
||||||
|
|
||||||
@node Invoking guix lint
|
@node Invoking guix lint
|
||||||
@section Invoking @command{guix lint}
|
@section Invoking @command{guix lint}
|
||||||
|
|
||||||
|
@cindex @command{guix lint}
|
||||||
|
@cindex package, checking for errors
|
||||||
The @command{guix lint} command is meant to help package developers avoid
|
The @command{guix lint} command is meant to help package developers avoid
|
||||||
common errors and use a consistent style. It runs a number of checks on
|
common errors and use a consistent style. It runs a number of checks on
|
||||||
a given set of packages in order to find common mistakes in their
|
a given set of packages in order to find common mistakes in their
|
||||||
|
@ -5392,6 +5441,10 @@ names returned by @code{--list-checkers}.
|
||||||
@node Invoking guix size
|
@node Invoking guix size
|
||||||
@section Invoking @command{guix size}
|
@section Invoking @command{guix size}
|
||||||
|
|
||||||
|
@cindex size
|
||||||
|
@cindex package size
|
||||||
|
@cindex closure
|
||||||
|
@cindex @command{guix size}
|
||||||
The @command{guix size} command helps package developers profile the
|
The @command{guix size} command helps package developers profile the
|
||||||
disk usage of packages. It is easy to overlook the impact of an
|
disk usage of packages. It is easy to overlook the impact of an
|
||||||
additional dependency added to a package, or the impact of using a
|
additional dependency added to a package, or the impact of using a
|
||||||
|
@ -5495,6 +5548,8 @@ Consider packages for @var{system}---e.g., @code{x86_64-linux}.
|
||||||
@section Invoking @command{guix graph}
|
@section Invoking @command{guix graph}
|
||||||
|
|
||||||
@cindex DAG
|
@cindex DAG
|
||||||
|
@cindex @command{guix graph}
|
||||||
|
@cindex package dependencies
|
||||||
Packages and their dependencies form a @dfn{graph}, specifically a
|
Packages and their dependencies form a @dfn{graph}, specifically a
|
||||||
directed acyclic graph (DAG). It can quickly become difficult to have a
|
directed acyclic graph (DAG). It can quickly become difficult to have a
|
||||||
mental model of the package DAG, so the @command{guix graph} command
|
mental model of the package DAG, so the @command{guix graph} command
|
||||||
|
@ -5637,6 +5692,8 @@ guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
|
||||||
|
|
||||||
@cindex reproducible build environments
|
@cindex reproducible build environments
|
||||||
@cindex development environments
|
@cindex development environments
|
||||||
|
@cindex @command{guix environment}
|
||||||
|
@cindex environment, package build environment
|
||||||
The purpose of @command{guix environment} is to assist hackers in
|
The purpose of @command{guix environment} is to assist hackers in
|
||||||
creating reproducible development environments without polluting their
|
creating reproducible development environments without polluting their
|
||||||
package profile. The @command{guix environment} tool takes one or more
|
package profile. The @command{guix environment} tool takes one or more
|
||||||
|
@ -5883,6 +5940,7 @@ build} supports (@pxref{Common Build Options}).
|
||||||
@node Invoking guix publish
|
@node Invoking guix publish
|
||||||
@section Invoking @command{guix publish}
|
@section Invoking @command{guix publish}
|
||||||
|
|
||||||
|
@cindex @command{guix publish}
|
||||||
The purpose of @command{guix publish} is to enable users to easily share
|
The purpose of @command{guix publish} is to enable users to easily share
|
||||||
their store with others, who can then use it as a substitute server
|
their store with others, who can then use it as a substitute server
|
||||||
(@pxref{Substitutes}).
|
(@pxref{Substitutes}).
|
||||||
|
@ -5993,7 +6051,8 @@ of the @code{operating-system} declaration (@pxref{guix-publish-service,
|
||||||
|
|
||||||
@cindex reproducible builds
|
@cindex reproducible builds
|
||||||
@cindex verifiable builds
|
@cindex verifiable builds
|
||||||
|
@cindex @command{guix challenge}
|
||||||
|
@cindex challenge
|
||||||
Do the binaries provided by this server really correspond to the source
|
Do the binaries provided by this server really correspond to the source
|
||||||
code it claims to build? Is a package build process deterministic?
|
code it claims to build? Is a package build process deterministic?
|
||||||
These are the questions the @command{guix challenge} command attempts to
|
These are the questions the @command{guix challenge} command attempts to
|
||||||
|
@ -6118,7 +6177,7 @@ URLs to compare to.
|
||||||
@node Invoking guix container
|
@node Invoking guix container
|
||||||
@section Invoking @command{guix container}
|
@section Invoking @command{guix container}
|
||||||
@cindex container
|
@cindex container
|
||||||
|
@cindex @command{guix container}
|
||||||
@quotation Note
|
@quotation Note
|
||||||
As of version @value{VERSION}, this tool is experimental. The interface
|
As of version @value{VERSION}, this tool is experimental. The interface
|
||||||
is subject to radical change in the future.
|
is subject to radical change in the future.
|
||||||
|
@ -6244,6 +6303,7 @@ to join! @xref{Contributing}, for information about how you can help.
|
||||||
@node System Installation
|
@node System Installation
|
||||||
@section System Installation
|
@section System Installation
|
||||||
|
|
||||||
|
@cindex installing GuixSD
|
||||||
@cindex Guix System Distribution
|
@cindex Guix System Distribution
|
||||||
This section explains how to install the Guix System Distribution (GuixSD)
|
This section explains how to install the Guix System Distribution (GuixSD)
|
||||||
on a machine. The Guix package manager can
|
on a machine. The Guix package manager can
|
||||||
|
@ -6487,6 +6547,8 @@ ifconfig @var{interface} up
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item Wireless connection
|
@item Wireless connection
|
||||||
|
@cindex wireless
|
||||||
|
@cindex WiFi
|
||||||
To configure wireless networking, you can create a configuration file
|
To configure wireless networking, you can create a configuration file
|
||||||
for the @command{wpa_supplicant} configuration tool (its location is not
|
for the @command{wpa_supplicant} configuration tool (its location is not
|
||||||
important) using one of the available text editors such as
|
important) using one of the available text editors such as
|
||||||
|
@ -6519,6 +6581,7 @@ wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B
|
||||||
Run @command{man wpa_supplicant} for more information.
|
Run @command{man wpa_supplicant} for more information.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@cindex DHCP
|
||||||
At this point, you need to acquire an IP address. On a network where IP
|
At this point, you need to acquire an IP address. On a network where IP
|
||||||
addresses are automatically assigned @i{via} DHCP, you can run:
|
addresses are automatically assigned @i{via} DHCP, you can run:
|
||||||
|
|
||||||
|
@ -6727,6 +6790,7 @@ that.
|
||||||
@node Building the Installation Image
|
@node Building the Installation Image
|
||||||
@subsection Building the Installation Image
|
@subsection Building the Installation Image
|
||||||
|
|
||||||
|
@cindex installation image
|
||||||
The installation image described above was built using the @command{guix
|
The installation image described above was built using the @command{guix
|
||||||
system} command, specifically:
|
system} command, specifically:
|
||||||
|
|
||||||
|
@ -6841,6 +6905,7 @@ version:
|
||||||
|
|
||||||
@unnumberedsubsubsec System Services
|
@unnumberedsubsubsec System Services
|
||||||
|
|
||||||
|
@cindex services
|
||||||
@vindex %base-services
|
@vindex %base-services
|
||||||
The @code{services} field lists @dfn{system services} to be made
|
The @code{services} field lists @dfn{system services} to be made
|
||||||
available when the system starts (@pxref{Services}).
|
available when the system starts (@pxref{Services}).
|
||||||
|
@ -6995,6 +7060,8 @@ the command-line of the kernel---e.g., @code{("console=ttyS0")}.
|
||||||
The system bootloader configuration object. @xref{GRUB Configuration}.
|
The system bootloader configuration object. @xref{GRUB Configuration}.
|
||||||
|
|
||||||
@item @code{initrd} (default: @code{base-initrd})
|
@item @code{initrd} (default: @code{base-initrd})
|
||||||
|
@cindex initrd
|
||||||
|
@cindex initial RAM disk
|
||||||
A two-argument monadic procedure that returns an initial RAM disk for
|
A two-argument monadic procedure that returns an initial RAM disk for
|
||||||
the Linux kernel. @xref{Initial RAM Disk}.
|
the Linux kernel. @xref{Initial RAM Disk}.
|
||||||
|
|
||||||
|
@ -7386,6 +7453,9 @@ automatically later.
|
||||||
@node User Accounts
|
@node User Accounts
|
||||||
@subsection User Accounts
|
@subsection User Accounts
|
||||||
|
|
||||||
|
@cindex users
|
||||||
|
@cindex accounts
|
||||||
|
@cindex user accounts
|
||||||
User accounts and groups are entirely managed through the
|
User accounts and groups are entirely managed through the
|
||||||
@code{operating-system} declaration. They are specified with the
|
@code{operating-system} declaration. They are specified with the
|
||||||
@code{user-account} and @code{user-group} forms:
|
@code{user-account} and @code{user-group} forms:
|
||||||
|
@ -7419,6 +7489,7 @@ be specified:
|
||||||
The name of the user account.
|
The name of the user account.
|
||||||
|
|
||||||
@item @code{group}
|
@item @code{group}
|
||||||
|
@cindex groups
|
||||||
This is the name (a string) or identifier (a number) of the user group
|
This is the name (a string) or identifier (a number) of the user group
|
||||||
this account belongs to.
|
this account belongs to.
|
||||||
|
|
||||||
|
@ -7467,6 +7538,7 @@ Manual}, for information on Guile's @code{crypt} procedure.
|
||||||
@end table
|
@end table
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
|
@cindex groups
|
||||||
User group declarations are even simpler:
|
User group declarations are even simpler:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -7754,6 +7826,7 @@ This is the data type representing the configuration of login.
|
||||||
@table @asis
|
@table @asis
|
||||||
|
|
||||||
@item @code{motd}
|
@item @code{motd}
|
||||||
|
@cindex message of the day
|
||||||
A file-like object containing the ``message of the day''.
|
A file-like object containing the ``message of the day''.
|
||||||
|
|
||||||
@item @code{allow-empty-passwords?} (default: @code{#t})
|
@item @code{allow-empty-passwords?} (default: @code{#t})
|
||||||
|
@ -7924,6 +7997,8 @@ external name servers do not even need to be queried.
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
@anchor{syslog-configuration-type}
|
@anchor{syslog-configuration-type}
|
||||||
|
@cindex syslog
|
||||||
|
@cindex logging
|
||||||
@deftp {Data Type} syslog-configuration
|
@deftp {Data Type} syslog-configuration
|
||||||
This data type represents the configuration of the syslog daemon.
|
This data type represents the configuration of the syslog daemon.
|
||||||
|
|
||||||
|
@ -7938,6 +8013,7 @@ The syslog configuration file to use.
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
@anchor{syslog-service}
|
@anchor{syslog-service}
|
||||||
|
@cindex syslog
|
||||||
@deffn {Scheme Procedure} syslog-service @var{config}
|
@deffn {Scheme Procedure} syslog-service @var{config}
|
||||||
Return a service that runs a syslog daemon according to @var{config}.
|
Return a service that runs a syslog daemon according to @var{config}.
|
||||||
|
|
||||||
|
@ -7961,6 +8037,7 @@ Name of the group for build user accounts.
|
||||||
Number of build user accounts to create.
|
Number of build user accounts to create.
|
||||||
|
|
||||||
@item @code{authorize-key?} (default: @code{#t})
|
@item @code{authorize-key?} (default: @code{#t})
|
||||||
|
@cindex substitutes, authorization thereof
|
||||||
Whether to authorize the substitute keys listed in
|
Whether to authorize the substitute keys listed in
|
||||||
@code{authorized-keys}---by default that of @code{hydra.gnu.org}
|
@code{authorized-keys}---by default that of @code{hydra.gnu.org}
|
||||||
(@pxref{Substitutes}).
|
(@pxref{Substitutes}).
|
||||||
|
@ -8007,6 +8084,8 @@ This is the name of the file where some random bytes are saved by
|
||||||
It defaults to @file{/var/lib/random-seed}.
|
It defaults to @file{/var/lib/random-seed}.
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
|
@cindex keymap
|
||||||
|
@cindex keyboard
|
||||||
@deffn {Scheme Procedure} console-keymap-service @var{files} ...
|
@deffn {Scheme Procedure} console-keymap-service @var{files} ...
|
||||||
@cindex keyboard layout
|
@cindex keyboard layout
|
||||||
Return a service to load console keymaps from @var{files} using
|
Return a service to load console keymaps from @var{files} using
|
||||||
|
@ -8028,6 +8107,8 @@ See @code{man loadkeys} for details.
|
||||||
|
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@cindex mouse
|
||||||
|
@cindex gpm
|
||||||
@deffn {Scheme Procedure} gpm-service [#:gpm @var{gpm}] @
|
@deffn {Scheme Procedure} gpm-service [#:gpm @var{gpm}] @
|
||||||
[#:options]
|
[#:options]
|
||||||
Run @var{gpm}, the general-purpose mouse daemon, with the given
|
Run @var{gpm}, the general-purpose mouse daemon, with the given
|
||||||
|
@ -8089,6 +8170,7 @@ commonly used for real-time audio systems.
|
||||||
@subsubsection Scheduled Job Execution
|
@subsubsection Scheduled Job Execution
|
||||||
|
|
||||||
@cindex cron
|
@cindex cron
|
||||||
|
@cindex mcron
|
||||||
@cindex scheduling jobs
|
@cindex scheduling jobs
|
||||||
The @code{(gnu services mcron)} module provides an interface to
|
The @code{(gnu services mcron)} module provides an interface to
|
||||||
GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,,
|
GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,,
|
||||||
|
@ -8184,6 +8266,7 @@ specifications,, mcron, GNU@tie{}mcron}).
|
||||||
|
|
||||||
@cindex rottlog
|
@cindex rottlog
|
||||||
@cindex log rotation
|
@cindex log rotation
|
||||||
|
@cindex logging
|
||||||
Log files such as those found in @file{/var/log} tend to grow endlessly,
|
Log files such as those found in @file{/var/log} tend to grow endlessly,
|
||||||
so it's a good idea to @dfn{rotate} them once in a while---i.e., archive
|
so it's a good idea to @dfn{rotate} them once in a while---i.e., archive
|
||||||
their contents in separate files, possibly compressed. The @code{(gnu
|
their contents in separate files, possibly compressed. The @code{(gnu
|
||||||
|
@ -8278,6 +8361,8 @@ gateway.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@cindex wicd
|
@cindex wicd
|
||||||
|
@cindex wireless
|
||||||
|
@cindex WiFi
|
||||||
@cindex network management
|
@cindex network management
|
||||||
@deffn {Scheme Procedure} wicd-service [#:wicd @var{wicd}]
|
@deffn {Scheme Procedure} wicd-service [#:wicd @var{wicd}]
|
||||||
Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
|
Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
|
||||||
|
@ -8307,6 +8392,8 @@ several the @command{connmanctl} command to interact with the daemon and
|
||||||
configure networking."
|
configure networking."
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@cindex NTP
|
||||||
|
@cindex real time clock
|
||||||
@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
|
@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
|
||||||
[#:servers @var{%ntp-servers}] @
|
[#:servers @var{%ntp-servers}] @
|
||||||
[#:allow-large-adjustment? #f]
|
[#:allow-large-adjustment? #f]
|
||||||
|
@ -8321,6 +8408,7 @@ make an initial adjustment of more than 1,000 seconds.
|
||||||
List of host names used as the default NTP servers.
|
List of host names used as the default NTP servers.
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
|
@cindex Tor
|
||||||
@deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]
|
@deffn {Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]
|
||||||
Return a service to run the @uref{https://torproject.org, Tor} anonymous
|
Return a service to run the @uref{https://torproject.org, Tor} anonymous
|
||||||
networking daemon.
|
networking daemon.
|
||||||
|
@ -8368,6 +8456,8 @@ configuration file.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
Furthermore, @code{(gnu services ssh)} provides the following services.
|
Furthermore, @code{(gnu services ssh)} provides the following services.
|
||||||
|
@cindex SSH
|
||||||
|
@cindex SSH server
|
||||||
|
|
||||||
@deffn {Scheme Procedure} lsh-service [#:host-key "/etc/lsh/host-key"] @
|
@deffn {Scheme Procedure} lsh-service [#:host-key "/etc/lsh/host-key"] @
|
||||||
[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @
|
[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @
|
||||||
|
@ -8405,6 +8495,8 @@ root.
|
||||||
The other options should be self-descriptive.
|
The other options should be self-descriptive.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@cindex SSH
|
||||||
|
@cindex SSH server
|
||||||
@deffn {Scheme Variable} openssh-service-type
|
@deffn {Scheme Variable} openssh-service-type
|
||||||
This is the type for the @uref{http://www.openssh.org, OpenSSH} secure
|
This is the type for the @uref{http://www.openssh.org, OpenSSH} secure
|
||||||
shell daemon, @command{sshd}. Its value must be an
|
shell daemon, @command{sshd}. Its value must be an
|
||||||
|
@ -8568,6 +8660,8 @@ sockets.
|
||||||
@node X Window
|
@node X Window
|
||||||
@subsubsection X Window
|
@subsubsection X Window
|
||||||
|
|
||||||
|
@cindex X11
|
||||||
|
@cindex X Window System
|
||||||
Support for the X Window graphical display system---specifically
|
Support for the X Window graphical display system---specifically
|
||||||
Xorg---is provided by the @code{(gnu services xorg)} module. Note that
|
Xorg---is provided by the @code{(gnu services xorg)} module. Note that
|
||||||
there is no @code{xorg-service} procedure. Instead, the X server is
|
there is no @code{xorg-service} procedure. Instead, the X server is
|
||||||
|
@ -8665,6 +8759,7 @@ Relogin after logout.
|
||||||
@end table
|
@end table
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
|
@cindex login manager
|
||||||
@deffn {Scheme Procedure} sddm-service config
|
@deffn {Scheme Procedure} sddm-service config
|
||||||
Return a service that spawns the SDDM graphical login manager for config of
|
Return a service that spawns the SDDM graphical login manager for config of
|
||||||
type @code{<sddm-configuration>}.
|
type @code{<sddm-configuration>}.
|
||||||
|
@ -9011,6 +9106,8 @@ Users need to be in the @code{lp} group to access the D-Bus service.
|
||||||
@node Database Services
|
@node Database Services
|
||||||
@subsubsection Database Services
|
@subsubsection Database Services
|
||||||
|
|
||||||
|
@cindex database
|
||||||
|
@cindex SQL
|
||||||
The @code{(gnu services databases)} module provides the following services.
|
The @code{(gnu services databases)} module provides the following services.
|
||||||
|
|
||||||
@deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @
|
@deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @
|
||||||
|
@ -9047,6 +9144,8 @@ For MariaDB, the root password is empty.
|
||||||
@node Mail Services
|
@node Mail Services
|
||||||
@subsubsection Mail Services
|
@subsubsection Mail Services
|
||||||
|
|
||||||
|
@cindex mail
|
||||||
|
@cindex email
|
||||||
The @code{(gnu services mail)} module provides Guix service definitions
|
The @code{(gnu services mail)} module provides Guix service definitions
|
||||||
for mail services. Currently the only implemented service is Dovecot,
|
for mail services. Currently the only implemented service is Dovecot,
|
||||||
an IMAP, POP3, and LMTP server.
|
an IMAP, POP3, and LMTP server.
|
||||||
|
@ -10450,6 +10549,9 @@ Local accounts with lower values will silently fail to authenticate.
|
||||||
@node Web Services
|
@node Web Services
|
||||||
@subsubsection Web Services
|
@subsubsection Web Services
|
||||||
|
|
||||||
|
@cindex web
|
||||||
|
@cindex www
|
||||||
|
@cindex HTTP
|
||||||
The @code{(gnu services web)} module provides the following service:
|
The @code{(gnu services web)} module provides the following service:
|
||||||
|
|
||||||
@deffn {Scheme Procedure} nginx-service [#:nginx nginx] @
|
@deffn {Scheme Procedure} nginx-service [#:nginx nginx] @
|
||||||
|
@ -10665,6 +10767,7 @@ resolution when the graphical console window resizes.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@subsubsection Dictionary Services
|
@subsubsection Dictionary Services
|
||||||
|
@cindex dictionary
|
||||||
The @code{(gnu services dict)} module provides the following service:
|
The @code{(gnu services dict)} module provides the following service:
|
||||||
|
|
||||||
@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)]
|
@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)]
|
||||||
|
@ -10956,8 +11059,8 @@ Reference Manual}). For example:
|
||||||
@node Initial RAM Disk
|
@node Initial RAM Disk
|
||||||
@subsection Initial RAM Disk
|
@subsection Initial RAM Disk
|
||||||
|
|
||||||
@cindex initial RAM disk (initrd)
|
@cindex initrd
|
||||||
@cindex initrd (initial RAM disk)
|
@cindex initial RAM disk
|
||||||
For bootstrapping purposes, the Linux-Libre kernel is passed an
|
For bootstrapping purposes, the Linux-Libre kernel is passed an
|
||||||
@dfn{initial RAM disk}, or @dfn{initrd}. An initrd contains a temporary
|
@dfn{initial RAM disk}, or @dfn{initrd}. An initrd contains a temporary
|
||||||
root file system as well as an initialization script. The latter is
|
root file system as well as an initialization script. The latter is
|
||||||
|
@ -11033,6 +11136,8 @@ Now that you know all the features that initial RAM disks produced by
|
||||||
@code{base-initrd} provide, here is how to use it and customize it
|
@code{base-initrd} provide, here is how to use it and customize it
|
||||||
further.
|
further.
|
||||||
|
|
||||||
|
@cindex initrd
|
||||||
|
@cindex initial RAM disk
|
||||||
@deffn {Monadic Procedure} base-initrd @var{file-systems} @
|
@deffn {Monadic Procedure} base-initrd @var{file-systems} @
|
||||||
[#:qemu-networking? #f] [#:virtio? #t] [#:volatile-root? #f] @
|
[#:qemu-networking? #f] [#:virtio? #t] [#:volatile-root? #f] @
|
||||||
[#:extra-modules '()] [#:mapped-devices '()]
|
[#:extra-modules '()] [#:mapped-devices '()]
|
||||||
|
@ -11235,6 +11340,7 @@ once @command{reconfigure} has completed.
|
||||||
@end quotation
|
@end quotation
|
||||||
|
|
||||||
@item switch-generation
|
@item switch-generation
|
||||||
|
@cindex generations
|
||||||
Switch to an existing system generation. This action atomically
|
Switch to an existing system generation. This action atomically
|
||||||
switches the system profile to the specified system generation. It also
|
switches the system profile to the specified system generation. It also
|
||||||
rearranges the system's existing GRUB menu entries. It makes the menu
|
rearranges the system's existing GRUB menu entries. It makes the menu
|
||||||
|
@ -11271,6 +11377,7 @@ deactivating services.
|
||||||
This action will fail if the specified generation does not exist.
|
This action will fail if the specified generation does not exist.
|
||||||
|
|
||||||
@item roll-back
|
@item roll-back
|
||||||
|
@cindex rolling back
|
||||||
Switch to the preceding system generation. The next time the system
|
Switch to the preceding system generation. The next time the system
|
||||||
boots, it will use the preceding system generation. This is the inverse
|
boots, it will use the preceding system generation. This is the inverse
|
||||||
of @command{reconfigure}, and it is exactly the same as invoking
|
of @command{reconfigure}, and it is exactly the same as invoking
|
||||||
|
@ -11490,11 +11597,13 @@ example graph.
|
||||||
@node Running GuixSD in a VM
|
@node Running GuixSD in a VM
|
||||||
@subsection Running GuixSD in a Virtual Machine
|
@subsection Running GuixSD in a Virtual Machine
|
||||||
|
|
||||||
|
@cindex virtual machine
|
||||||
One way to run GuixSD in a virtual machine (VM) is to build a GuixSD
|
One way to run GuixSD in a virtual machine (VM) is to build a GuixSD
|
||||||
virtual machine image using @command{guix system vm-image}
|
virtual machine image using @command{guix system vm-image}
|
||||||
(@pxref{Invoking guix system}). The returned image is in qcow2 format,
|
(@pxref{Invoking guix system}). The returned image is in qcow2 format,
|
||||||
which the @uref{http://qemu.org/, QEMU emulator} can efficiently use.
|
which the @uref{http://qemu.org/, QEMU emulator} can efficiently use.
|
||||||
|
|
||||||
|
@cindex QEMU
|
||||||
To run the image in QEMU, copy it out of the store (@pxref{The Store})
|
To run the image in QEMU, copy it out of the store (@pxref{The Store})
|
||||||
and give yourself permission to write to the copy. When invoking QEMU,
|
and give yourself permission to write to the copy. When invoking QEMU,
|
||||||
you must choose a system emulator that is suitable for your hardware
|
you must choose a system emulator that is suitable for your hardware
|
||||||
|
@ -11550,6 +11659,8 @@ network connectivity, like for example @command{curl}.
|
||||||
|
|
||||||
@subsubsection Connecting Through SSH
|
@subsubsection Connecting Through SSH
|
||||||
|
|
||||||
|
@cindex SSH
|
||||||
|
@cindex SSH server
|
||||||
To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)}
|
To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)}
|
||||||
or @code{(lsh-service)} to your VM. The @code{(lsh-service}) doesn't currently
|
or @code{(lsh-service)} to your VM. The @code{(lsh-service}) doesn't currently
|
||||||
boot unsupervised. It requires you to type some characters to initialize the
|
boot unsupervised. It requires you to type some characters to initialize the
|
||||||
|
@ -11988,6 +12099,7 @@ extend it by passing it lists of packages to add to the system profile.
|
||||||
@node Shepherd Services
|
@node Shepherd Services
|
||||||
@subsubsection Shepherd Services
|
@subsubsection Shepherd Services
|
||||||
|
|
||||||
|
@cindex shepherd services
|
||||||
@cindex PID 1
|
@cindex PID 1
|
||||||
@cindex init system
|
@cindex init system
|
||||||
The @code{(gnu services shepherd)} module provides a way to define
|
The @code{(gnu services shepherd)} module provides a way to define
|
||||||
|
@ -12312,6 +12424,7 @@ bootstrap)} module. For more information on bootstrapping,
|
||||||
@node Packaging Guidelines
|
@node Packaging Guidelines
|
||||||
@section Packaging Guidelines
|
@section Packaging Guidelines
|
||||||
|
|
||||||
|
@cindex packages, creating
|
||||||
The GNU distribution is nascent and may well lack some of your favorite
|
The GNU distribution is nascent and may well lack some of your favorite
|
||||||
packages. This section describes how you can help make the distribution
|
packages. This section describes how you can help make the distribution
|
||||||
grow. @xref{Contributing}, for additional information on how you can
|
grow. @xref{Contributing}, for additional information on how you can
|
||||||
|
@ -12389,7 +12502,7 @@ needed is to review and apply the patch.
|
||||||
@subsection Software Freedom
|
@subsection Software Freedom
|
||||||
|
|
||||||
@c Adapted from http://www.gnu.org/philosophy/philosophy.html.
|
@c Adapted from http://www.gnu.org/philosophy/philosophy.html.
|
||||||
|
@cindex free software
|
||||||
The GNU operating system has been developed so that users can have
|
The GNU operating system has been developed so that users can have
|
||||||
freedom in their computing. GNU is @dfn{free software}, meaning that
|
freedom in their computing. GNU is @dfn{free software}, meaning that
|
||||||
users have the @url{http://www.gnu.org/philosophy/free-sw.html,four
|
users have the @url{http://www.gnu.org/philosophy/free-sw.html,four
|
||||||
|
@ -12416,6 +12529,7 @@ upstream source.
|
||||||
@node Package Naming
|
@node Package Naming
|
||||||
@subsection Package Naming
|
@subsection Package Naming
|
||||||
|
|
||||||
|
@cindex package name
|
||||||
A package has actually two names associated with it:
|
A package has actually two names associated with it:
|
||||||
First, there is the name of the @emph{Scheme variable}, the one following
|
First, there is the name of the @emph{Scheme variable}, the one following
|
||||||
@code{define-public}. By this name, the package can be made known in the
|
@code{define-public}. By this name, the package can be made known in the
|
||||||
|
@ -12440,6 +12554,7 @@ Font package names are handled differently, @pxref{Fonts}.
|
||||||
@node Version Numbers
|
@node Version Numbers
|
||||||
@subsection Version Numbers
|
@subsection Version Numbers
|
||||||
|
|
||||||
|
@cindex package version
|
||||||
We usually package only the latest version of a given free software
|
We usually package only the latest version of a given free software
|
||||||
project. But sometimes, for instance for incompatible library versions,
|
project. But sometimes, for instance for incompatible library versions,
|
||||||
two (or more) versions of the same package are needed. These require
|
two (or more) versions of the same package are needed. These require
|
||||||
|
@ -12532,6 +12647,8 @@ definition may look like this:
|
||||||
@node Synopses and Descriptions
|
@node Synopses and Descriptions
|
||||||
@subsection Synopses and Descriptions
|
@subsection Synopses and Descriptions
|
||||||
|
|
||||||
|
@cindex package description
|
||||||
|
@cindex package synopsis
|
||||||
As we have seen before, each package in GNU@tie{}Guix includes a
|
As we have seen before, each package in GNU@tie{}Guix includes a
|
||||||
synopsis and a description (@pxref{Defining Packages}). Synopses and
|
synopsis and a description (@pxref{Defining Packages}). Synopses and
|
||||||
descriptions are important: They are what @command{guix package
|
descriptions are important: They are what @command{guix package
|
||||||
|
@ -12598,6 +12715,7 @@ for the X11 resize-and-rotate (RandR) extension. @dots{}")
|
||||||
@node Python Modules
|
@node Python Modules
|
||||||
@subsection Python Modules
|
@subsection Python Modules
|
||||||
|
|
||||||
|
@cindex python
|
||||||
We currently package Python 2 and Python 3, under the Scheme variable names
|
We currently package Python 2 and Python 3, under the Scheme variable names
|
||||||
@code{python-2} and @code{python} as explained in @ref{Version Numbers}.
|
@code{python-2} and @code{python} as explained in @ref{Version Numbers}.
|
||||||
To avoid confusion and naming clashes with other programming languages, it
|
To avoid confusion and naming clashes with other programming languages, it
|
||||||
|
@ -12668,6 +12786,7 @@ size}}).
|
||||||
@node Perl Modules
|
@node Perl Modules
|
||||||
@subsection Perl Modules
|
@subsection Perl Modules
|
||||||
|
|
||||||
|
@cindex perl
|
||||||
Perl programs standing for themselves are named as any other package,
|
Perl programs standing for themselves are named as any other package,
|
||||||
using the lowercase upstream name.
|
using the lowercase upstream name.
|
||||||
For Perl packages containing a single class, we use the lowercase class name,
|
For Perl packages containing a single class, we use the lowercase class name,
|
||||||
|
@ -12683,6 +12802,7 @@ prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}.
|
||||||
@node Java Packages
|
@node Java Packages
|
||||||
@subsection Java Packages
|
@subsection Java Packages
|
||||||
|
|
||||||
|
@cindex java
|
||||||
Java programs standing for themselves are named as any other package,
|
Java programs standing for themselves are named as any other package,
|
||||||
using the lowercase upstream name.
|
using the lowercase upstream name.
|
||||||
|
|
||||||
|
@ -12702,6 +12822,7 @@ dashes and prepend the prefix @code{java-}. So the class
|
||||||
@node Fonts
|
@node Fonts
|
||||||
@subsection Fonts
|
@subsection Fonts
|
||||||
|
|
||||||
|
@cindex fonts
|
||||||
For fonts that are in general not installed by a user for typesetting
|
For fonts that are in general not installed by a user for typesetting
|
||||||
purposes, or that are distributed as part of a larger software package,
|
purposes, or that are distributed as part of a larger software package,
|
||||||
we rely on the general packaging rules for software; for instance, this
|
we rely on the general packaging rules for software; for instance, this
|
||||||
|
@ -12875,6 +12996,7 @@ implicitly used by any package that uses @code{gnu-build-system}
|
||||||
|
|
||||||
@unnumberedsubsec Building the Bootstrap Binaries
|
@unnumberedsubsec Building the Bootstrap Binaries
|
||||||
|
|
||||||
|
@cindex bootstrap binaries
|
||||||
Because the final tool chain does not depend on the bootstrap binaries,
|
Because the final tool chain does not depend on the bootstrap binaries,
|
||||||
those rarely need to be updated. Nevertheless, it is useful to have an
|
those rarely need to be updated. Nevertheless, it is useful to have an
|
||||||
automated way to produce them, should an update occur, and this is what
|
automated way to produce them, should an update occur, and this is what
|
||||||
|
@ -12970,7 +13092,7 @@ providing artwork and themes, making suggestions, and more---thank you!
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node GNU Free Documentation License
|
@node GNU Free Documentation License
|
||||||
@appendix GNU Free Documentation License
|
@appendix GNU Free Documentation License
|
||||||
|
@cindex license, GNU Free Documentation License
|
||||||
@include fdl-1.3.texi
|
@include fdl-1.3.texi
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
|
|
Loading…
Reference in New Issue