summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi58
1 files changed, 32 insertions, 26 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 76a812f23c..6becc430f7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3114,10 +3114,11 @@ instance to support new system services.
 @node Using the Configuration System
 @subsection Using the Configuration System
 
-The operating system is configured by filling in an
-@code{operating-system} structure, as defined by the @code{(gnu system)}
-module.  A simple setup, with the default system services, the default
-Linux-Libre kernel, initial RAM disk, and boot loader looks like this:
+The operating system is configured by providing an
+@code{operating-system} declaration in a file that can then be passed to
+the @command{guix system} command (@pxref{Invoking guix system}).  A
+simple setup, with the default system services, the default Linux-Libre
+kernel, initial RAM disk, and boot loader looks like this:
 
 @findex operating-system
 @lisp
@@ -3125,33 +3126,38 @@ Linux-Libre kernel, initial RAM disk, and boot loader looks like this:
              (gnu packages emacs)  ; for 'emacs'
              (gnu services ssh))   ; for 'lsh-service'
 
-(define komputilo
-  (operating-system
-   (host-name "komputilo")
-   (timezone "Europe/Paris")
-   (locale "fr_FR.UTF-8")
-   (bootloader (grub-configuration
-                 (device "/dev/sda")))
-   (file-systems (list (file-system
-                         (device "/dev/sda1") ; or partition label
-                         (mount-point "/")
-                         (type "ext3"))))
-   (users (list (user-account
-                 (name "alice")
-                 (password "")
-                 (uid 1000) (gid 100)
-                 (comment "Bob's sister")
-                 (home-directory "/home/alice"))))
-   (packages (cons emacs %base-packages))
-   (services (cons (lsh-service #:port 2222 #:allow-root-login? #t)
-                   %base-services))))
+(operating-system
+  (host-name "komputilo")
+  (timezone "Europe/Paris")
+  (locale "fr_FR.UTF-8")
+  (bootloader (grub-configuration
+                (device "/dev/sda")))
+  (file-systems (list (file-system
+                        (device "/dev/sda1") ; or partition label
+                        (mount-point "/")
+                        (type "ext3"))))
+  (users (list (user-account
+                (name "alice")
+                (password "")
+                (uid 1000) (gid 100)
+                (comment "Bob's sister")
+                (home-directory "/home/alice"))))
+  (packages (cons emacs %base-packages))
+  (services (cons (lsh-service #:port 2222 #:allow-root-login? #t)
+                  %base-services)))
 @end lisp
 
-This example should be self-describing.  The @code{packages} field lists
+This example should be self-describing.  Some of the fields defined
+above, such as @code{host-name} and @code{bootloader}, are mandatory.
+Others, such as @code{packages} and @code{services}, can be omitted, in
+which case they get a default value.
+
+@vindex %base-packages
+The @code{packages} field lists
 packages that will be globally visible on the system, for all user
 accounts---i.e., in every user's @code{PATH} environment variable---in
 addition to the per-user profiles (@pxref{Invoking guix package}).  The
-@var{%base-packages} variables provides all the tools one would expect
+@var{%base-packages} variable provides all the tools one would expect
 for basic user and administrator tasks---including the GNU Core
 Utilities, the GNU Networking Utilities, the GNU Zile lightweight text
 editor, @command{find}, @command{grep}, etc.  The example above adds