diff options
-rw-r--r-- | doc/guix.texi | 18 | ||||
-rw-r--r-- | guix/scripts/pull.scm | 5 |
2 files changed, 22 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index a934626e5a..7cc33c6e22 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3666,6 +3666,21 @@ descriptions, and deploys it. Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized. +Specifically, @command{guix pull} downloads code from the @dfn{channels} +(@pxref{Channels}) specified by one of the followings, in this order: + +@enumerate +@item +the @option{--channels} option; +@item +the user's @file{~/.config/guix/channels.scm} file; +@item +the system-wide @file{/etc/guix/channels.scm} file; +@item +the built-in default channels specified in the @code{%default-channels} +variable. +@end enumerate + On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix. Not only that, but all the Guix commands and Scheme modules will also be taken from that latest @@ -3763,7 +3778,8 @@ configuration in the @file{~/.config/guix/channels.scm} file or using the @item --channels=@var{file} @itemx -C @var{file} Read the list of channels from @var{file} instead of -@file{~/.config/guix/channels.scm}. @var{file} must contain Scheme code that +@file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}. +@var{file} must contain Scheme code that evaluates to a list of channel objects. @xref{Channels}, for more information. diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 7876019eac..80d070652b 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -714,6 +714,9 @@ transformations specified in OPTS (resulting from '--url', '--commit', or (define default-file (string-append (config-directory) "/channels.scm")) + (define global-file + (string-append %sysconfdir "/guix/channels.scm")) + (define (load-channels file) (let ((result (load* file (make-user-module '((guix channels)))))) (if (and (list? result) (every channel? result)) @@ -725,6 +728,8 @@ transformations specified in OPTS (resulting from '--url', '--commit', or (load-channels file)) ((file-exists? default-file) (load-channels default-file)) + ((file-exists? global-file) + (load-channels global-file)) (else %default-channels))) |