diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/guix.texi | 114 | ||||
-rw-r--r-- | doc/local.mk | 84 |
2 files changed, 153 insertions, 45 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index d88cc256d7..b9bf986640 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -336,6 +336,13 @@ manager, which can be done on top of a running GNU/Linux system. If, instead, you want to install the complete GNU operating system, @pxref{System Installation}. +@cindex foreign distro +When installed on a running GNU/Linux system---thereafter called a +@dfn{foreign distro}---GNU@tie{}Guix complements the available tools +without interference. Its data lives exclusively in two directories, +usually @file{/gnu/store} and @file{/var/guix}; other files on your +system, such as @file{/etc}, are left untouched. + @menu * Binary Installation:: Getting Guix running in no time! * Requirements:: Software needed to build and run Guix. @@ -375,7 +382,7 @@ If that command fails because you do not have the required public key, then run this command to import it: @example -$ gpg --keyserver keys.gnupg.net --recv-keys 090B11993D9AEBB5 +$ gpg --keyserver pgp.mit.edu --recv-keys 090B11993D9AEBB5 @end example @noindent @@ -998,6 +1005,10 @@ consecutive build results are not bit-for-bit identical. Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build}). +When used in conjunction with @option{--keep-failed}, the differing +output is kept in the store, under @file{/gnu/store/@dots{}-check}. +This makes it easy to look for differences between the two results. + @item --debug Produce debugging output. @@ -1092,6 +1103,7 @@ daemons on the same machine. @node Application Setup @section Application Setup +@cindex foreign distro When using Guix on top of GNU/Linux distribution other than GuixSD---a so-called @dfn{foreign distro}---a few additional steps are needed to get everything in place. Here are some of them. @@ -3082,7 +3094,7 @@ Store Monad}). @cindex derivations Low-level build actions and the environment in which they are performed -are represented by @dfn{derivations}. A derivation contain the +are represented by @dfn{derivations}. A derivation contains the following pieces of information: @itemize @@ -4332,6 +4344,10 @@ substitutes are genuine (@pxref{Substitutes}), or whether the build result of a package is deterministic. @xref{Invoking guix challenge}, for more background information and tools. +When used in conjunction with @option{--keep-failed}, the differing +output is kept in the store, under @file{/gnu/store/@dots{}-check}. +This makes it easy to look for differences between the two results. + @item --derivations @itemx -d Return the derivation paths, not the output paths, of the given @@ -5058,6 +5074,24 @@ reports information based on the available substitutes (@pxref{Substitutes}). This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely. +You can also specify several package names: + +@example +$ guix size coreutils grep sed bash +store item total self +/gnu/store/@dots{}-coreutils-8.24 77.8 13.8 13.4% +/gnu/store/@dots{}-grep-2.22 73.1 0.8 0.8% +/gnu/store/@dots{}-bash-4.3.42 72.3 4.7 4.6% +/gnu/store/@dots{}-readline-6.3 67.6 1.2 1.2% +@dots{} +total: 102.3 MiB +@end example + +@noindent +In this example we see that the combination of the four packages takes +102.3@tie{}MiB in total, which is much less than the sum of each closure +since they have a lot of dependencies in common. + The available options are: @table @option @@ -5948,6 +5982,11 @@ dependencies of your system configuration can be downloaded. See the ``Networking'' section below. @end quotation +The installation system includes many common tools needed for this task. +But it is also a full-blown GuixSD system, which means that you can +install additional packages, should you need it, using @command{guix +package} (@pxref{Invoking guix package}). + @subsubsection Keyboard Layout @cindex keyboard layout @@ -5971,6 +6010,13 @@ Run the following command see what your network interfaces are called: ifconfig -a @end example +@noindent +@dots{} or, using the GNU/Linux-specific @command{ip} command: + +@example +ip a +@end example + @c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20 Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is @@ -7337,6 +7383,17 @@ Return a service that runs the Guix build daemon according to Run @var{udev}, which populates the @file{/dev} directory dynamically. @end deffn +@deffn {Scheme Procedure} urandom-seed-service @var{#f} +Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} +when rebooting. +@end deffn + +@defvr {Scheme Variable} %random-seed-file +This is the name of the file where some random bytes are saved by +@var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting. +It defaults to @file{/var/lib/random-seed}. +@end defvr + @deffn {Scheme Procedure} console-keymap-service @var{files} ... @cindex keyboard layout Return a service to load console keymaps from @var{files} using @@ -9338,6 +9395,55 @@ Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}. @end deffn +@subsubsection Dictionary Services +The @code{(gnu services dict)} module provides the following service: + +@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)] +Return a service that runs the @command{dicod} daemon, an implementation +of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}). + +The optional @var{config} argument specifies the configuration for +@command{dicod}, which should be a @code{<dicod-configuration>} object, by +default it serves the GNU Collaborative International Dictonary of English. + +You can add @command{open localhost} to your @file{~/.dico} file to make +@code{localhost} the default server for @command{dico} client +(@pxref{Initialization File,,, dico, GNU Dico Manual}). +@end deffn + +@deftp {Data Type} dicod-configuration +Data type representing the configuration of dicod. + +@table @asis +@item @code{dico} (default: @var{dico}) +Package object of the GNU Dico dictionary server. + +@item @code{databases} (default: @var{(list %dicod-database:gcide)}) +List of @code{<dicod-database>} objects denoting dictionaries to be served. +@end table +@end deftp + +@deftp {Data Type} dicod-database +Data type representing a dictionary database. + +@table @asis +@item @code{name} +Name of the database, will be used in DICT commands. + +@item @code{module} +Name of the dicod module used by this database +(@pxref{Modules,,, dico, GNU Dico Manual}). + +@item @code{options} +List of strings or gexps representing the arguments for the module handler +(@pxref{Handlers,,, dico, GNU Dico Manual}). +@end table +@end deftp + +@defvr {Scheme Variable} %dicod-database:gcide +A @code{<dicod-database>} object serving the GNU Collaborative International +Dictonary of English using the @code{gcide} package. +@end defvr @node Setuid Programs @subsection Setuid Programs @@ -11068,7 +11174,9 @@ packages with the corresponding names. If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names -@code{python-dateutil} and @code{python2-dateutil}. +@code{python-dateutil} and @code{python2-dateutil}. If the project name +starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as +described above. @node Perl Modules diff --git a/doc/local.mk b/doc/local.mk index b9f07c3590..64bd2a5169 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -20,49 +20,49 @@ # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. -info_TEXINFOS = doc/guix.texi +info_TEXINFOS = %D%/guix.texi DOT_FILES = \ - doc/images/bootstrap-graph.dot \ - doc/images/bootstrap-packages.dot \ - doc/images/coreutils-graph.dot \ - doc/images/coreutils-bag-graph.dot \ - doc/images/service-graph.dot \ - doc/images/shepherd-graph.dot + %D%/images/bootstrap-graph.dot \ + %D%/images/bootstrap-packages.dot \ + %D%/images/coreutils-graph.dot \ + %D%/images/coreutils-bag-graph.dot \ + %D%/images/service-graph.dot \ + %D%/images/shepherd-graph.dot DOT_VECTOR_GRAPHICS = \ $(DOT_FILES:%.dot=%.eps) \ $(DOT_FILES:%.dot=%.pdf) EXTRA_DIST += \ - doc/htmlxref.cnf \ - doc/contributing.texi \ - doc/emacs.texi \ - doc/fdl-1.3.texi \ + %D%/htmlxref.cnf \ + %D%/contributing.texi \ + %D%/emacs.texi \ + %D%/fdl-1.3.texi \ $(DOT_FILES) \ $(DOT_VECTOR_GRAPHICS) \ - doc/images/coreutils-size-map.eps \ - doc/environment-gdb.scm \ - doc/package-hello.scm + %D%/images/coreutils-size-map.eps \ + %D%/environment-gdb.scm \ + %D%/package-hello.scm OS_CONFIG_EXAMPLES_TEXI = \ - doc/os-config-bare-bones.texi \ - doc/os-config-desktop.texi \ - doc/os-config-lightweight-desktop.texi + %D%/os-config-bare-bones.texi \ + %D%/os-config-desktop.texi \ + %D%/os-config-lightweight-desktop.texi # Bundle this file so that makeinfo finds it in out-of-source-tree builds. BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI) MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI) -doc/os-config-%.texi: gnu/system/examples/%.tmpl +%D%/os-config-%.texi: gnu/system/examples/%.tmpl $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ cp "$<" "$@" infoimagedir = $(infodir)/images dist_infoimage_DATA = \ $(DOT_FILES:%.dot=%.png) \ - doc/images/coreutils-size-map.png + %D%/images/coreutils-size-map.png # Try hard to obtain an image size and aspect that's reasonable for inclusion # in an Info or PDF document. @@ -86,13 +86,13 @@ DOT_OPTIONS = \ $(AM_V_GEN)convert "$<" "$@-tmp.eps"; \ mv "$@-tmp.eps" "$@" -# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake) +# We cannot add new dependencies to `%D%/guix.pdf' & co. (info "(automake) # Extending"). Using the `-local' rules is imperfect, because they may be # triggered after the main rule. Oh, well. pdf-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.pdf) info-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.png) ps-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.eps) \ - $(top_srcdir)/doc/images/coreutils-size-map.eps + $(top_srcdir)/%D%/images/coreutils-size-map.eps dvi-local: ps-local ## ----------- ## @@ -106,25 +106,25 @@ dvi-local: ps-local # They are built in $(srcdir) like info manuals. sub_commands_mans = \ - $(srcdir)/doc/guix-archive.1 \ - $(srcdir)/doc/guix-build.1 \ - $(srcdir)/doc/guix-challenge.1 \ - $(srcdir)/doc/guix-download.1 \ - $(srcdir)/doc/guix-edit.1 \ - $(srcdir)/doc/guix-environment.1 \ - $(srcdir)/doc/guix-gc.1 \ - $(srcdir)/doc/guix-hash.1 \ - $(srcdir)/doc/guix-import.1 \ - $(srcdir)/doc/guix-lint.1 \ - $(srcdir)/doc/guix-package.1 \ - $(srcdir)/doc/guix-publish.1 \ - $(srcdir)/doc/guix-pull.1 \ - $(srcdir)/doc/guix-refresh.1 \ - $(srcdir)/doc/guix-size.1 \ - $(srcdir)/doc/guix-system.1 + $(srcdir)/%D%/guix-archive.1 \ + $(srcdir)/%D%/guix-build.1 \ + $(srcdir)/%D%/guix-challenge.1 \ + $(srcdir)/%D%/guix-download.1 \ + $(srcdir)/%D%/guix-edit.1 \ + $(srcdir)/%D%/guix-environment.1 \ + $(srcdir)/%D%/guix-gc.1 \ + $(srcdir)/%D%/guix-hash.1 \ + $(srcdir)/%D%/guix-import.1 \ + $(srcdir)/%D%/guix-lint.1 \ + $(srcdir)/%D%/guix-package.1 \ + $(srcdir)/%D%/guix-publish.1 \ + $(srcdir)/%D%/guix-pull.1 \ + $(srcdir)/%D%/guix-refresh.1 \ + $(srcdir)/%D%/guix-size.1 \ + $(srcdir)/%D%/guix-system.1 dist_man1_MANS = \ - $(srcdir)/doc/guix.1 \ + $(srcdir)/%D%/guix.1 \ $(sub_commands_mans) gen_man = \ @@ -133,14 +133,14 @@ gen_man = \ HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME) -$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans) +$(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans) -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` # The 'case' ensures the man pages are only generated if the corresponding # source script (the first prerequisite) has been changed. The $(GOBJECTS) # prerequisite is solely meant to force these docs to be made only after all # Guile modules have been compiled. -$(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS) +$(srcdir)/%D%/guix-%.1: guix/scripts/%.scm $(GOBJECTS) -@case '$?' in \ *$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ $(gen_man) --output="$@" "guix $*";; \ @@ -149,9 +149,9 @@ $(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS) if BUILD_DAEMON -dist_man1_MANS += $(srcdir)/doc/guix-daemon.1 +dist_man1_MANS += $(srcdir)/%D%/guix-daemon.1 -$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc +$(srcdir)/%D%/guix-daemon.1: nix/nix-daemon/guix-daemon.cc -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` endif |